文章目录
Docker
#0 理解docker镜像与容器
#0.1 下载镜像
下载镜像
docker pull daocloud.io/library/django
#0.2 镜像
在镜像的下载工程中,给人的第一感觉就是镜像并不是铁板一块,好像是分成6个部分,一个一个的下载,确实如此,镜像就是一层一层的,并且镜像只有读权限!!!
#0.3 容器
创建一个容器的过程,镜像是静态的,镜像的每一层都只是可读的,而容器是动态的里面运行着我们指定的应用,容器里面的应用可能会新建一个文件,修改一个目录,这些操作所带来的改变并不会作用到镜像里面,因为镜像只是可读的。所以通过镜像创建容器就是在镜像上加一个可读写的层!!!
一个镜像可创建多个容器,每个容器都有各自的一个可读写层,这些层相互独立共享下面的镜像!!!
#0.4 镜像和容器的关系
简单地讲,镜像是一些程序和文件的集合,容器是镜像的一个运行实例
#1 命令
拉取镜像
docker pull ubuntu
docker pull ubuntu:14.04
进入容器
docker run -i -t ubuntu /bin/bash
查看容器
docker ps # 真正在运行的容器
docker ps -a # 所有的容器
列出所有镜像
docker images
容器的启停
docker start / stop / restart / kill
查看容器日志
docker log
拉取国内镜像
docker pull daocloud.io/library/nginx:stable-perl
# 冒号后面跟的是版本号,没有默认最新版本
运行镜像
docker run -d -p 80:80 daocloud.io/library/nginx
-d : 后台运行
-p : 端口映射,本机的80端口映射到容器的80端口
进入容器
docker exec -it 68b /bin/bash
# docker exec : 可以在指定的容器中运行命令
# 68b : 指定容器的id前3位
# -it : 执行后不退出
# /bin/bash : 在容器中执行的命令是/bin/bash
持久化容器
容器在退出后并不会更改镜像,如果需要更改镜像,需要提交自己修改的镜像
docker commit 68b my-nginx
删除镜像
查询镜像
docker images
想删掉id为47b19964fb50的镜像
先把镜像对应的容器关掉
docker ps -a # 查询所有容器
docker rm 850562122c5f # 删除容器
docker rmi 47b19964fb50 # 删除镜像