Docker操作
systemctl start docker # 启动
systemctl stop docker # 停止
systemctl restart docker #重启
systemctl enable docker # 开机自启
systemctl disable docker # 关闭开机自启
查看 Docker 版本状态:
docker -v
docker version
查看docker运行状态:
docker info
Docker镜像
docker search <image name> # 搜索镜像(只能用于官方镜像库) 例:docker search nginx
docker pull <image name> # 拉取镜像 例:docker pull ubuntu:14.04
docker images # 查看所有本地镜像 (-q 只查看镜像id)
docker image inspect <image id 或 image name> # 查看镜像详情
docker rmi <image id 或 image name> # 删除镜像
docker rmi $(docker images -q) # 删除所有镜像
docker rmi <image id 或 image name> -f # 强制删除镜像 -f,--force (Force removal of the image)
docker history <image id 或 image name> # 查看镜像制作的过程
Docker容器
创建、运行容器
# 创建容器时,若本地没有镜像,则自动去拉取镜像
docker create -it <image id 或 image name> /bin/bash # 创建新容器但不启动
docker run -it <image id 或 image name> /bin/bash # 创建新容器并启动
docker run -itd <image id 或 image name> /bin/bash # 创建后台运行容器 -d后台运行必须要加-it
docker run -itd --name=containername --restart=always <image id 或 image name> /bin/bash # --name=XXX 给容器命名; --restart=always 容器随着docker的启动而启动
删除容器
docker rm <container id 或 container name>
docker rm $(docker ps -qf status=exited) # 删除所有停止的容器 -f:过滤
查看容器
docker ps # 只查看运行状态的容器
docker ps -a # 查看所有容器
docker ps -aq # 只查看所有容器id
docker inspect <container id 或 container name> # 查看容器详细
启动,停止容器
docker start <container id 或 container name> # 启动容器
docker restart <container id 或 container name> # 重新启动容器
docker stop name <container id 或 container name> # 停止容器
docker kill name <container id 或 container name> # 强制停止容器
docker stop $(docker ps -q) # 停止所有容器
暂停及恢复暂停的容器
docker pause <container id 或 container name> # 暂停容器
docker unpause <container id 或 container name> # 恢复暂停的容器
进入容器
# 方法一:
docker attach <container id 或 container name> # 连接容器 前提是容器在运行状态中
# 方法二:
docker exec -it <container id 或 container name> /bin/bash # 交互型任务
docker exec <container id 或 container name> touch /testfile # 后台型任务
退出容器
# 若要断开与容器的连接,并且关闭容器:容器内部执行如下命令
exit
# 如果只想断开和容器的连接而不关闭容器
使用快捷键:ctrl+p+q
重命名容器
docker rename oldname newname
查看资源消耗情况
docker stats
# 当有容器在运行的时候动态显示容器的资源消耗情况,包括:CPU、内存、网络I/O
查看容器的运行日志
docker logs -f <container id 或 container name> # -f选项可以跟踪日志的输出,直到手动停止。
docker logs --tail -2 <container id 或 container name> # --tail选项可以指定查看最后几条日志
查看容器进程信息
docker top <container id 或 container name>
捕捉容器停止时的退出码
docker wait <container id 或 container name>
docker run 之后容器退出的状态码:
0,表示正常退出
非0,表示异常退出(退出状态码采用chroot标准)
125,Docker守护进程本身的错误
126,容器启动后,要执行的默认命令无法调用
127,容器启动后,要执行的默认命令不存在
容器中文件的复制
docker cp <container id 或 container name>:/path/file /path
容器与容器、主机与容器间的文件复制
Docker容器镜像制作
container —> tar包 —> image
# 打包
docker export -o XXX.tar <container id 或 container name> # -o --output
或者
docker export <container id 或 container name> > XXX.tar
# 恢复
docker import XXX.tar imagename:tag
container —> image
docker commit <container id 或 container name> imagename:tag
或者
docker commit -m "describe" -a "author" -p <container id 或 container name> imagename:tag
-m 添加注释
-a 作者
-p,–pause=true 提交时暂停容器运行
image —> tar包 —> image
docker save -o XXX.tar imagename:tag
docker load < XXX.tar
端口转发
-p 创建应用容器的时候,为了让外部能够访问这些容器里的应用,一般会做端口映射。可以用多个-p指定多个端口映射关系。
-P 当使用-P标记时,Docker 会随机映射一个 32768~49900 的端口到内部容器开放的网络端口。
docker run -it -p 主机端口:容器端口 <image id 或 image name> /bin/bash
例:
docker run -d --name web01 -p 81:80 daocloud.io/library/nginx
容器卷
把本地宿主机上面的某一个目录挂载到容器里面的目录去。这两个目录都不用提前存在,会自动创建。
可以使用多个-v进行挂载。
docker run -it -v 主机路径:容器路径 <image id 或 image name> /bin/bash
例:
docker run -it -v /data:/var/www/html nginx /bin/bash