仓库名+标签名对应唯一的镜像 以冒号为分隔符
ubuntu : latest
镜像
docker images -a docker rmi ubuntu:16.04 -f # 强制删除镜像 可以一次删除多个 技巧:删除Ubuntu中所有镜像 docker rmi $(docker images ubuntu -q) # 删除Ubuntu中所有的镜像 $(docker images ubuntu -q) # 返回Ubuntu容器的ID
容器
# 创建容器并且进入 -i 是交互式的方式 docker run -i -t --name dd ubuntu /bin/bash #-i 以交互式方式启动停止的容器 docker start -i zhangjiawei #进入交互式容器查看进程 ps -ef #容器停止 exit # 守护式容器 Ctrl + P+Q 退出界面,但是容器没有关闭,ps查看 docker attach 【容器ID】 #查看所有容器状态 docker ps -a #查看正在启动的容器 和宿主机端口映射到容器的端口号 docker ps
2
# 停止容器 docker stop 【容器名】 #在容器外面启动容器里的软件 docker exec 【容器名】 【容器里面的软件如nginx】 #查看容器的ip地址以及映射到宿主机的端口号 #停止容器后在启动,映射的容器的IP和端口号变了,注意 docker inspect 【容器名】 在一个"NetworkSettings": 里面写的呢 docker inspect 【镜像名】 查看镜像的信息 # 查看容器和宿主机的端口映射情况 docker port 【容器名】 #查看容器进程情况 docker top 【容器名】
curl 【网址】访问网站
获取镜像
本地和远程镜像
查找镜像
-
docker Hub的网站 注册 zjw739353680 密码:ct1535009398
-
registry.hub.docker.com
# 通过docker hub 寻找镜像,下面表示搜索3星级的镜像 docker search -s 3 ubuntu
拉去镜像
# 速度可能缓慢,可能需要使用镜像,镜像暂时不去做了。速度还行不是特别的慢 docker pull ubuntu:14.04
推送镜像
构建镜像例子
-
下载一个镜像用pull 或者直接新建容器
docker commit # 通过容器构建 docker build #通过Dockerfile文件构建 ,后面将的更仔细
docker run -it -p 80 --name zhangjiaweitest ubuntu /bin/bash # 默认使用最新的Ubuntu:lastest,没有则下载在建立容器
-
在容器里面安装软件
1.更新 apt-get update 2.安装ifconfig apt-get install net-tools 3.安装ping apt-get install iputils-ping
-
将容器提交为镜像
docker commit -a 'zjw' -m 'ifconfig_ping' zhangjiaweitest zjw739353680/commit_test1 docker commit -a 【作者信息】 -m 【镜像信息】 【容器的名字】 【镜像的名字】 使用dockerfile 就是在记事本里面写好了配置,然后一条语句就完事了,比较快,也方便,不过这里先不去说了
使用这个提交的镜像建立容器,原来安装好的软件都还在,
docker的网络连接
有一个docker0网卡,docker的守护进程就是通过这个进行网络连接的。他是虚拟网桥是数据链路层的设备,os7层的
他有IP地址,相当于隐形的虚拟网卡,
数据卷存在与宿主机中,
新建容器的时候添加数据卷,这个数据卷和宿主机指定的目录一致
sudo docker run -v ~/datavolume:/data:ro -it ubuntu /bin/bash #只读权限 sudo docker run -v ~/datavolume:/data:rw -it ubuntu /bin/bash #读写权限