Skip to main content

Docker 基本命令

Docker 常用命令总结

安装

Docker的安装在1.12之后需要Centos7才行

yum update all -y  
curl -fsSL https://get.docker.com/ | sh  

启动、停止

service docker start  
service docker stop  

查看日志

journalctl -fu docker.service  

列出可用镜像

docker images  
[root@ZJ2153 ~]# docker images
REPOSITORY           TAG                 IMAGE ID            CREATED             SIZE  
xiaocan_ghost_blog   latest              37e318a865ed        5 days ago          448MB  
gitlab/gitlab-ce     latest              ab6138b2b7fe        9 days ago          1.31GB  
centos               6.9                 573de66f263e        4 months ago        195MB  
[root@ZJ2153 ~]#

删除镜像

docker rmi [Image ID]  

从远程拉取镜像

docker pull [Repository name | Repository url]  
docker pull registry.cn-hangzhou.aliyuncs.com/ghoulich-centos/centos-6.9-basic  
docker pull centos 6.9  

创建容器

docker run --help  

以后台运行的方式创建容器

需要注意的是容器必须要有在前台运行的程序,才能以后台运行的方式创建

docker run -d [Image id | Repository name | Repository url]  
docker run -d 32c511dad3c2  

创建容器,映射本地路径到容器中

docker run -d --volume [主机目录]:[容器目录] [Image id | Repository name | Repository url]  
docker run -d --volume /home/data/blog_xiaocan:/data/blog 32c511dad3c2  

创建容器,映射容器的端口到主机的IP、端口上

docker run -d -p <主机IP>:[主机端口]:[容器端口] [Image id | Repository name | Repository url]  
docker run -d -p 127.0.0.1:2368:2368 2fa54498b8c5  
docker run -d -p 7133:2298 2fa54498b8c5  

对容器命名

docker run -d --name=[容器名称] [Image id | Repository name | Repository url]  

在前台方式以bash启动容器

docker run -it [Image id | Repository name | Repository url] bash  

创建后台运行的程序,通过bash执行指定命令

docker run -d -v /home/data/blog_xiaocan:/data/blog -p 127.0.0.1:2368:2368 --name=xiaocan_blog 37e318a865ed /bin/sh -c 'cd /data/blog && npm start --production'  

当容器退出的时候,自动重启

docker run --restart always [Image id | Repository name | Repository url]  

列出容器、启动、停止、重启、删除

List

docker ps  
docker ps -a  

Start

docker start [容器ID | 容器名称]  

Stop

docker stop [容器ID | 容器名称]  

Restart

docker restart [容器ID | 容器名称]  

Delete

docker rm [容器ID | 容器名称]  

附加到当前容器

docker attach [容器ID | 容器名称]  
docker attach 8dc  

检查容器日志

docker logs -f -t --since="2017-08-01" --tail=10 5bfa13c5d562  

将当前容器导出为镜像

这是一个偷懒的办法,对于懒得写Dockfile的人来说,直接编辑好,然后导出比较简单省事,但是并不方便之后对镜像做其他配置

导出为image

docker commit 8dc314191abe xiaocan_ghost_blog  

查看导出的image

[root@ZJ2153 ~]# docker images
REPOSITORY           TAG                 IMAGE ID            CREATED             SIZE  
xiaocan_ghost_blog   latest              37e318a865ed        5 days ago          448MB  
gitlab/gitlab-ce     latest              ab6138b2b7fe        10 days ago         1.31GB  
centos               6.9                 573de66f263e        4 months ago        195MB  

或者,直接保存Container

docker export 8dc314191abe > blog.tar  

然后在其他机器上导入

docker import blog.tar  

又或者,使用Docker save

docker save busybox-1 > /home/save.tar  

然后使用load命令导入

docker load < /home/save.tar  

之后启动即可