docker 版本1.12 ,整理一下常用的命令:
1 . 列表内容
检索镜像
docker search redis
2 . 查看本机所有镜像
docker images
3 . 下载镜像
docker pull hello-world
docker pull 172.172.20.28:9800/test/hello-world:latest
4 . 启动一个容器
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
-d : 以后台进行方式运行容器
-t : 提供一个伪终端
-i : 提供交互输入,一般与“-t”一起使用,如果只提供“-i”选项,则容器启动后是无法退出的
-v : 映射一个volume给容器,如: -p /data/www:/var/www/html
-p : 将容器的端口映射给宿主机,如: -p 8080:80
示例:
以交互方式启动一个容器:
# docker -it centos:6.6 /bin/bash
以后台方式启动容器,并映射端口:
# docker -d -p 4422:22 sshd
映射一个本地目录给容器,并映射端口:
# docker run -d -v /data/www:/var/www/html -p 8080:80 httpd
# docker run -d --net='host' -v /data/logs/appcenter_appcenter:/opt/tomcat/logs --name appcenter_appcenter 172.172.177.75:5000/appcenter_appcenter 10.253.254.24,12507,59000,59001
5 . 查看docker容器
docker ps -a
docker ps
6 . 查看docker容器日志
docker logs “Container Name或Container ID”
7 . 停止容器
正常停止一个运行中的容器:
# docker stop “Container Name或Container ID”
直接kill一个容器:
# docker kill “Container Name或Container ID”
8 . 删除容器
# docker rm “Container Name或Container ID”
9 . 重启docker容器
# docker restart“Container Name或Container ID”
10 . 进入容器
docker exec -it d48b21a7e439 /bin/sh
11 .查看容器或者镜像文件底层信息
docker inspect fdb
12 .查看docker版本
docker version: 显示Docker版本
docker info: 显示Docker信息
13. 拷贝文件
docker cp: 拷贝容器中的文件到宿主主机
命令格式:
docker cp CONTAINER:PATH HOSTPATH
例子:
docker cp c3f279d17e0a:/home/hyzhou/answer.txt /data/logs 将镜像中的/home/hyzhou/answer.txt文件拷贝到当前目录下
14. 查看docker容器中的进程
docker top: 查看容器输出
命令格式:
docker top CONTAINER [ps OPTIONS]
例子:
[ps OPTIONS]的意思是, 你可以在这个命令后面加上使用ps命令时的各种参数
sudo docker top 708cc7ec0f23
sudo docker top 708cc7ec0f23 aux
15. 实时监听容器的事件
docker events: 实时监听容器的事件
命令格式:
docker events [OPTIONS]
命令参数:
--since="" 显示某一个时间戳之后的events
--until="" 实时监听到某个时间戳为止
例子:
A终端:
sudo docker events 终端A等待Docker系统信息
sudo docker events --since 1378216169
sudo docker events --since '2013-09-03'
sudo docker events--since '2013-09-03 15:49:29'
sudo docker events --since'2013-09-03 15:49:29 +0200CEST'
sudo docker events > docker.log & 后台记录Docker的容器事件
B终端:
sudo docker restart 708cc7ec0f23 从B终端关闭容器
A终端显示:
2014-09-06T23:08:21+08:00708cc7ec0f23a5ec898c9d6308e9767edb66b863e96352ca6e030f0a5557f3b2:(fromubuntu:latest) die
2014-09-06T23:08:22+08:00708cc7ec0f23a5ec898c9d6308e9767edb66b863e96352ca6e030f0a5557f3b2:(fromubuntu:latest) start
2014-09-06T23:08:22+08:00708cc7ec0f23a5ec898c9d6308e9767edb66b863e96352ca6e030f0a5557f3b2:(fromubuntu:latest) restart
16. 显示镜像的历史记录
docker history: 显示镜像的历史记录
命令格式:
docker history [OPTIONS] IMAGE
命令参数:
--no-trunc=false 不要截断输出
-q, --quiet=false 仅显示容器ID
17. 上传/下载镜像
docker pull: 从远程拉取镜像
命令格式:
docker pull NAME[:TAG]
例子:
docker pull ubuntu:latest
docker push: 推送镜像到远程仓库
命令格式:
docker push NAME[:TAG]
例子:
docker push hyzhou/ubuntu:3.2.3
docker tag busybox 192.168.112.136:5000/busybox
docker push 192.168.112.136:5000/busybox
18. 将容器打包成新的镜像
docker commit: 将容器打包成新的镜像
命令格式:
docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
命令参数:
-a, --author="" 作者信息,"John Hannibal Smith <hannibal@a-team.com>"
-m, --message="" 提交信息
-p, --pause=true 在提交镜像时暂停容器
例子:
sudo docker ps
ID IMAGE COMMAND CREATED STATUS
c3f279d17e0a ubuntu:12.04 /bin/bash 7 days ago Up 25 hours
197387f1b436 ubuntu:12.04 /bin/bash 7 days ago Up 25 hours
docker commit c3f279d17e0a Hyzhou/my_ubuntu:3.2.3
docker commit -a "Hyzhou<hyzhou@qq.com>" -m "addthe new software" c3f279d17e0a Hyzhou/my_ubuntu:3.2.3
docker images
REPOSITORY TAG ID CREATED VIRTUAL SIZE
Hyzhou/my_ubuntu 3.2.3 f5283438590d 16 seconds ago 335.7 MB
19. Dockerfile构建新的镜像
docker build: 使用Dockerfile构建新镜像
命令格式:
docker build [OPTIONS] PATH|URL|-
命令参数:
--force-rm=false 移除构建时生成的中间容器
--no-cache=false Donot use cache when building the image
-q, --quiet=false 不显示容器的输出
--rm=true 构建成功后,移除构建时生成的中间容器
-t, --tag="" 构建成功后,新建镜像的名称
20. 给镜像加标签
docker tag: 为镜像加上标签
命令格式:
docker tag [OPTIONS] IMAGE[:TAG][REGISTRYHOST/][USERNAME/]NAME[:TAG]
命令参数:
-f, --force=false 强制打上标签?
例子:
sudo docker tag ubuntu:latest hyzhou/my_ubuntu:3.2.3 给ubuntu:latest打上新TAG:hyzhou/my_ubuntu:3.2.3
sudo docker tag eb601b8965b8 ubuntu:latest 给eb601b8965b8镜像打上TAG: ubuntu:latest(会转换原有的TAG指向)
21. 将image保存为tar压缩文件
docker save: 将image保存为tar压缩文件
命令格式:
docker save [OPTIONS] IMAGE [IMAGE...]
命令参数:
-o, --output="" 写入到一个文件中作为输出,默认是标准输出流
例子:
docker save --output ubuntu.tar ubuntu:latest 将Ubuntu的最新镜像打包为ubuntu.tar
docker save ubuntu:latest > ubuntu.tar 将Ubuntu的最新镜像打包为ubuntu.tar
22. 将tar压缩文件保存为image
docker load: 将tar压缩文件保存为image
命令格式:
Docker load [OPTIONS]
命令参数:
-i, --input="" 读取一个压缩文件作为输入,默认是标准输入流
例子:
docker load --input ubuntu.tar 读取ubuntu.tar作为镜像
docker load < ubuntu.tar 读取ubuntu.tar作为镜像
23. 把容器导出
docker export: 把容器系统文件打包并导出来,方便分发给其他场景使用。
命令格式:
docker export CONTAINER
例子:
sudo docker export my_ubuntu > ubuntu.tar 将Ubuntu的最新镜像打包为ubuntu.tar
24. 加载容器
docker import: 加载容器系统文件
命令格式:
docker import URL|- [REPOSITORY[:TAG]]
例子:
sudo docker import http://example.com/exampleimage.tgz
cat exampleimage.tgz | sudodocker import -exampleimagelocal:new