1.安装docker引擎(CentOs6必须升级内核才可以安装docker引擎)
yum install docker
2.启动docker服务
service docker start
chkconfig docker on
3.下载官网镜像到本地
docker pull centos
默认下载就可以
docker search centos/ubantu 查找可下载版本
4.查看本地是否已经下载的镜像
docker images
5运行一个docker容器
docker run -i -t centos /bin/bash (centos为镜像名,后期可以改成自己制作的镜像)
exit 退出容器
5.1在Container中运行一个长久的进程,这个时候不需要进入到镜像虚拟机内部
docker run -t -d centos /bin/bash
6.查看正在运行的容器
docker ps
6.1查看全部的容器包括沉睡的容器
docker ps -a
6.2杀死正在运行的容器
docker kill ID
6.3停止正在运行的容器
docker stop ID
6.4开启停止的容器
docker start ID
6.5重启容器
docker restart ID
7.docker命令帮助
docker help
8.docker的默认容器和镜像安装的位置
cd /var/lib/docker
9.从一个容器中取出日志,查看标准输出或者输入的内容
docker logs Name/ID
10将自己制作的docker镜像复制到本地上去
方法1:docker commit 保存container 的当前状态到image后,然后生成对应的image
创建一个新的container容器,并安装好nmap工具
docker run -i -t centos /bin/bash
yum -y install nmap-ncat
rpm -qa nmap-ncat #验证时候创建成功
exit
这个时候docker images查看还是只有我们先前下载的一个docker镜像
根据容器当前状态做一个image镜像:创建一个安装了nmap-ncat工具的centos镜像
提交:docker commit {镜像名:自定义名字}/centos:zw
这个镜像放在我们的本地,docker images这个时候会看到两个镜像
方法2:docker build 使用Dockerfile 自动化制作image
略
11.Docker Image的发布
方法1:导到本地
docker save -o 导出的镜像名.tar 本地镜像名
后期要使用的话
docker load -i 导出的镜像名.tar
方法2 :导到外网上
1.在http://hub.docker.com/上注册一个账号
2.docker login -u yourName -p yourPassword -e yourEmai
3.docker push 镜像名:tag
4.docker pull yourName/镜像名:tag
12.映射端口号
将宿主机的9000端口映射到容器的80端口,并在后台运行
docker run -d -p 9000:80 centos /bin/bash
查看物理机上开启的9000代理端口
netstat -antup | grep 9000
13进入正在运行的container
docker exec -i -t /bin/bash
14.查看容器的ip地址
首先登录进同期,安装网络工具
yum install net tools
Ifconfig
验证物理主机和容器之间的通信
15需要的话可以配置容器root密码
echo 密码 | password --stdin root
16.docker的四种网络模式
1.host模式 :
docker run 使用 --net=host指定
docker使用的网络实际上和宿主机一样
2. container模式:
使用 --net=container:container_id/container_name
多个容器使用共同的网络,看到的ip是一样的。
3. none 模式
使用 --net=none指定
这种模式下,不会配置任何网络。
4. bridge模式
使用 --net=bridge指定
默认模式,不会指定
此模式会为每个容器分配一个独立的network namespace
17.docker容器配置网络
1.pipework
不同容器之间的通讯可以借助与pipework这个工具给docker容器新建虚拟网卡并绑定ip桥接到docker
2.weave:运行在container内,每个weave网络内的主机都要运行,是一个Go语言实现的虚拟网络路由器。不同主机之间的网络通讯依赖于weaver路由
Weave安装:
sudo wget -O /usr/local/bin/weave https://github.com/zettio/weave/releases/download/latest_release/weave
sudo chmod a+x weave (给它可执行权限)
weave launch 运行,会先去下载一个容器
可能遇到的各种问题汇总
1.根本下载不下来镜像
vim /etc/sysconfig/docker
修改为:
OPTIONS='--selinux-enabled --log-driver=journald --signature-verification=false
--registry-mirror=http://f2d6cb40.m.daocloud.io'
然后
systemctl daemon-reload
systemctl restart docker
2.existing iptables rule
#查看FORWARD链
iptables -L FORWARD --line-numbers
#删除规则icmp-host-prohibited
iptables -D FORWARD 12
#保存链表规则
service iptables save
#重启iptables服务
service iptables restart
#停止weave服务,weave
weave stop
#启动weave 服务
weave launch
3.Failed to get netdev for “docker0” bridge: Link not found
#编辑自己设置的docker 文件
vim /etc/default/docker
#删除网桥配置
DOCKER_OPTS=""
#重启
service docker restart
#启动
weave weave launch
4.
Warning: unable to detect proxy TLS configuration. To enable TLS, launch the proxy with 'weave launch' and supply TLS options. To suppress this warning, supply the '--no-detect-tls' option.
#眼不见,心不烦,所以采取不检测tls的操作
weave launch --no-detect-tls