docker基础用法
docker images # 查看已有镜像
docker ps # 查看已运行镜像容器
docker ps -a # 查看所有容器,包含运行中和停止运行容器
1、镜像下载:
docker pull <target image>
2、镜像下载后的存储路径
/var/lib/docker/image/overlay2/repositories.json
3、docker删除镜像:
(1)docker images # 查看镜像ID
(2)docker rmi <IMAGE ID> / docker rmi <repostory:tag> # 有依赖的子镜像删除
4、常用命令
(1)docker运行容器
选项 | 说明 |
---|---|
-i | 以交互模式运行容器,通常与-t同是使用 |
-t | 为容器重新分配一个伪输入终端,也就是tty |
-d | 后台运行容器,并返回容器ID,也即启动守护式容器,docker容器后台运行,就必须要有一个前台进程 |
–name | 为容器指定一个运行中的新名字 |
docker run -itd --name <别名> <image ID> /bin/bash
eg: docker run -itd --name test bccc93df4ba9 /bin/bash
(2)进入容器
方法一:
docker exec -it <container ID or names> commad # 使用 exit 退出容器时,不会导致容器停止
eg: docker exec -it test /bin/bash
方法二:
docker attach <container ID or names> # 使用 exit 退出容器时,会导致容器停止
注意:exec 命令和 attach 命令的区别在于,当使用 exit 退出容器时,不会导致容器停止。
(3)退出容器
exit
(4)停止运行容器
docker stop <container ID or names>
(5)删除容器
docker rm <container ID or names> (docker ps -a 查看所有容器)
(6)更新容器保存为镜像
docker commit -m [修改说明] -a [指定更新的用户信息] <源容器ID> <指定目标镜像的仓库名(REPOSITORY): tag 信息>
eg: docker commit -m "Added json gem" -a "Docker Newbee" 0b2616b0e5a8 image/test:V2
eg2: docker commit a7091c2f2e74 image/test:test
注:修改容器后,退出不能停止运行,保存为新的镜像
(7)上传镜像至仓库
docker push NAME[:TAG]
eg: docker push image/test:test
(8)导出容器
docker export <container ID> > <name.tar>
eg: docker export 197520371e72 > image_test.tar
(9)导入容器
cat <name.tar> | docker import - <目标仓库(REPOSITORY): tag>
eg: cat image_test.tar | docker import - image/test:test
5、数据卷
(1)数据卷
数据卷类似于挂载目录,主机目录与容器目录内容同步,主机内容不会丢失
直接指定目录:
docker run -it -v <主机目录>:<容器目录> --name [别名] <镜像源(repo:tag)>
eg: docker run -it -v /var/www:/data --name centos-v1 centos
默认目录:/var/lib/docker/volumes
docker run -it -v <相对目录>:<容器目录> --name [别名] <镜像源(repo:tag)>
eg: docker run -it -v my-volume:/data2 --name centos-v2 centos
(2)数据卷容器
数据卷容器是一个普通的容器,专门提供数据给其他容器挂载使用
docker run -itd --volumes-from <数据卷容器> --name <别名> <镜像源(repo:tag)>
eg: docker run -itd --volumes-from centos-v2 --name centos-v3 centos