Docker入门指南

作者:AndyLizh 出处:blog.csdn.net/gebitan505

更换国内镜像源

docker store地址默认是在国外,下载速度很慢,自行更换国内docker加速地址。

名词解释

image: 镜像 containers: 容器 docker-machine: docker虚拟主机 docker store: docker存储云

术语

Image 和 Container Image可以理解为一个系统镜像,Container是Image在运行时的一个状态。 如果拿虚拟机作一个比喻的话,Image就是关机状态下的磁盘文件,Container就是虚拟机运行时的磁盘文件,包括内存数据。

Image 是系统一般来源是官方资源,或者比较稳定成熟的资源 Container 是启动系统后的运行时环境, 包括磁盘 + 运行的其他软件 + 环境配置他们之间可以互相转换。

docker daemon 主机上运行的后台服务管理构建,运行和分发Docker容器

docker client 命令行工具,允许用户与Docker守护进程交互

docker store docker images的注册地址,可以在其中找到受信任的企业级容器,插件和Docker版本。相当于docker的仓库。

运行docker HelloWorld docker run hello-world

拉取docker cloud项目 docker pull alpine docker run hello-world 背后也做了 docker pull 的动作去docker服务器上面下载。

提示:如果本地不存在这个image的话,如果本地已经存在,就不去docker store上面下载了。

查看所有的docker镜像 docker images

执行 docker 的命令 docker run alpine ls -l

进入一个docker docker run -it alpine /bin/sh exit退出

查看当前运行的 docker docker ps

查看全部 docker docker ps -a

获取 docker run 参数列表 docker run --help

查看一个docker的信息 docker inspect alpine

暂停 docker 容器 docker stop xxx

xxx 为 docker容器的名字 或CONTAINER ID

删除一个docker容器 docker rm xxx

-f 运行中的docker容器,需要先暂停再删除,或者直接加此参数

docker rm -f xxx

基本的docker web项目 从docker store获取依赖的docker image

// docker pull dockersamples/static-site docker run -d dockersamples/static-site

-d 表示后台运行,不加-d,就像Tomcat一样,无法再在当前命令窗口操作了,默认是flase。

detached 模式运行docker docker run --name static-site -e AUTHOR="Your Name" -d -P dockersamples/static-site

-d 独立于当前命令窗口运行

-P 将所有暴露的docker容器端口,映射到真实主机上面的随机端口

-p 将当前主机上面的指定端口,映射到docker容器的一个端口:-p 8888:80 将当前主机的8888端口映射到docker容器的80端口。

--name 指定容器的名称

-e 可以传递环境变量给docker容器

AUTHOR 环境变量的名称和值,可以自己任意指定

查看docker容器映射的端口 docker port [容器名 --name 指定的值]

$ docker port static-site 443/tcp -> 0.0.0.0:32772 80/tcp -> 0.0.0.0:32773

使用localhost:[docer80的本地映射端口]访问: http://localhost:32769/

创建docker主机

列出所有的docker主机 docker-machine ls

获取docker主机的IP地址 docker-machine ip default

可能出现错误: Host does not exist: "default"

解决: docker-machine create default

如果继续报错,Mac需要安装:VirtualBox https://www.docker.com/products/docker-toolbox

Mac docker-machine create -d virtualbox default

Windows 需要在添加删除程序里面开启hyperv,只有专业版的Windows才有,家庭版不存在此功能。

docker-machine create --driver hyperv vm https://docs.docker.com/machine/drivers/hyper-v/

安装完以后重启docker

Linux

sudo service docker restart Mac 和 Windows 图形化界面手动重启

然后继续创建: docker-machine create default

名字可以随便起,不一定要叫default 不报错任何错误,如:

Running pre-create checks… Error with pre-create check: "exit status 126"

说明安装成功:

Running pre-create checks… Creating machine… (default) Copying (default) Creating VirtualBox VM… (default) Creating SSH key… (default) Starting the VM… (default) Check network to re-create if needed… (default) Found a new host-only adapter: "vboxnet0" (default) Waiting for an IP… Waiting for machine to be running, this may take a few minutes… Detecting operating system of created instance… Waiting for SSH to be available… Detecting the provisioner… Provisioning with boot2docker… Copying certs to the local machine directory… Copying certs to the remote machine… Setting Docker configuration on the remote daemon… Checking connection to Docker… Docker is up and running! To see how to connect your Docker Client to the Docker Engine running on this virtual machine, run: docker-machine env default

然后再次查看docker主机: docker-machine ls

看到NAME为default的主机,说明成功。

再次输入:docker-machine ip default

得到一个主机的IP

192.168.99.100

进入docker主机 docker-machine ssh default

看到命令行前缀改变,表示成功

docker@default:~$

从docker store下载并运行 dockersamples/static-site:

docker run --name static-site -e AUTHOR="Your Name" -d -P dockersamples/static-site

然后查看docker主机里面容器的映射端口,使用docker主机的ip + 主机内容器的端口就可以访问到主机内的容器服务:

查看容器映射端口 docker port static-site 443/tcp -> 0.0.0.0:32768 80/tcp -> 0.0.0.0:32769 http://192.168.99.100:32769/

原文发布于微信公众号 - java技术学习之道(javajsxxzd)

原文发表时间:2018-05-26

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏电光石火

mysql用户管理

服务器上mysql的用户有两种: 1.  本地用户   从本机连接mysql,例如: mysql部署在A服务器上,从A上连接mysql的用户 2.  远...

1965
来自专栏PHP实战技术

yum安装mysql 5.6

http://repo.mysql.com/yum/

2175
来自专栏晓晨的专栏

Gogs搭建教程-极易搭建的自助 Git 服务

1873
来自专栏WindCoder

ubuntu中常用命令

作用:赋予当前命令行为管理员权限。 样式:sudo 其它命令 举例:sudo su #切换到超级管理员权限模式#

432
来自专栏向治洪

openfire环境搭建

1、下载源代码:http://www.igniterealtime.org/downloads/source.jsp ? 2、把源代码解压出的openfire_...

1785
来自专栏云计算教程系列

如何在CentOS 7上安装OpenLiteSpeed Web服务器

OpenLiteSpeed是一种优化的开源Web服务器,可用于管理和提供站点。就Linux Web服务器而言,OpenLiteSpeed具有一些有趣的功能,使其...

570
来自专栏开发技术

virtualBox安装centos,并搭建tomcat

  本文没什么难点,只是发现自己记忆不好,特别是搭建tomcat服务的时候,总是需要去重新查阅资料,特此就写这篇博客来加强自己的记忆,同时也给大家以参考;

443
来自专栏逻辑熊猫带你玩Python

Linux | 像Windows一样,复制移动重命名等操作

小编在上一篇文章中讲到Linux下的目录操作,一共讲了三个命令,分别是cd、ls、和pwd。但是这里有个问题,既然目录就是文件夹,那么,怎样新建或者删除文件夹,...

1062
来自专栏FreeBuf

dirsearch:基于Python的网站目录结构扫描器

dirsearch是一个基于python的命令行工具,旨在暴力扫描页面结构,包括网页中的目录和文件。 ? 系统支持 WindowsXP/7/8/10 GNU/L...

2697
来自专栏Laoqi's Linux运维专列

linux安全配置

今天清早登录服务器发现很多暴力狗(使用ssh端口破解登录密码),真不知道这些人有啥意思,破解了无非是把我的服务器当作肉鸡再去攻击其他服务器,目的无非就是证明你有...

2925

扫码关注云+社区