Docker笔记

Docker常用指令和加速器Perfect

docker基本命令

容器相关操作

1
2
3
4
5
6
7
8
9
docker create # 创建一个容器但是不启动它
docker run # 创建并启动一个容器
docker stop # 停止容器运行,发送信号SIGTERM
docker start # 启动一个停止状态的容器
docker restart # 重启一个容器
docker rm # 删除一个容器
docker kill # 发送信号给容器,默认SIGKILL
docker attach # 连接(进入)到一个正在运行的容器
docker wait # 阻塞到一个容器,直到容器停止运行

获取容器相关信息

1
2
3
4
5
6
7
8
docker ps # 显示状态为运行(Up)的容器
docker ps -a # 显示所有容器,包括运行中(Up)的和退出的(Exited)
docker inspect # 深入容器内部获取容器所有信息
docker logs # 查看容器的日志(stdout/stderr)
docker events # 得到docker服务器的实时的事件
docker port # 显示容器的端口映射
docker top # 显示容器的进程信息
docker diff # 显示容器文件系统的前后变化

导出容器

1
2
3
docker cp # 从容器里向外拷贝文件或目录
docker add # 添加文件,比cp更强大,可以添加remote server上的文件
docker save {$containerName} -o {path/name} # 将容器整个文件系统导出为一个tar包,不带layers、tag等信息

执行

1
docker exec # 在容器里执行一个命令,可以执行bash进入交互式

镜像操作

1
2
3
4
5
6
7
8
9
docker images # 显示本地所有的镜像列表
docker import # 从一个tar包创建一个镜像,往往和export结合使用
docker build # 使用Dockerfile创建镜像(推荐)
docker commit # 从容器创建镜像
docker rmi # 删除一个镜像
docker load # 从一个tar包创建一个镜像,和save配合使用
docker save # 将一个镜像保存为一个tar包,带layers和tag信息
docker history # 显示生成一个镜像的历史命令
docker tag # 为镜像起一个别名

镜像仓库(registry)操作

1
2
3
4
docker login # 登录到一个registry
docker search # 从registry仓库搜索镜像
docker pull # 从仓库下载镜像到本地
docker push # 将一个镜像push到registry仓库中

开发常用指令

查询命令

1
2
3
4
5
6
# 查询list of dependent child images 
docker inspect --format='{{.Id}} {{.Parent}}' $(docker images --filter since={$imageName} --quiet)
# 示例
docker inspect --format='{{.Id}} {{.Parent}}' $(docker images --filter since=77a7a --quiet)
# 查询服务ip
docker inspect -f '{{.Name}} - {{range .NetworkSettings.Networks}}{{.IPAddress}} {{end}}' $(docker ps -aq)

清理命令

1
2
3
4
5
6
7
8
9
10
# 杀死所有正在运行的容器
docker kill $(docker ps -a -q)
#删除所有已经停止的容器
docker rm $(docker ps -a -q)
#清除没有tag的镜像
docker rmi $(docker images | grep "^<none>" | awk '{print $3}')
#删除所有镜像
docker rmi $(docker images -q)
#若出现`image is referenced in multiple repositories`,镜像id相同,无法删除,加`f`参数,强制删除
docker rm -f $(docker ps -a -q)

dockerfile打包及使用

1
2
3
4
5
6
#构建镜像
docker build -t php:v7.3 .
# 导出镜像
docker save php:v7.3 -o ~/Desktop/php_7.3.tar
# 导入镜像
docker load --input ~/Desktop/php_7.3.tar

mac下进入docker内部

1
screen ~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/tty

docker加速器

注册用户并且申请加速器,获得加速地址,右键点击桌面顶栏的docker图标,选择Preferences,在Daemon 标签(Docker 17.03 之前版本为 Advanced 标签)下的 Registry mirrors列表中加入加速加速镜像地址

Docker Engine下将以下配置添加到json配置中

1
2
3
"registry-mirrors": [
"https://dfqt9xi4.mirror.aliyuncs.com"
]

尝试过阿里云和DaoCloud的两款加速器,感觉阿里云效果更好

加速配置参考

-------------本文结束感谢您的阅读-------------