Docker 常用命令总结
docker run 命令
docker run :用 image 创建一个新的容器并运行一个命令
docker run [option] image [command] [arg…]
注意: 如果不使用-d, 创建一个容器退出后容器关闭
常用选项:
- -d: 后台运行容器, 并返回容器 id
- -i: 已交互模式运行容器, 通常与-t 同时使用
- -P: 主机端口映射为容器随机端口.
- -p: 指定主机端口与容器映射的端口, 格式为: 主机端口: 容器端口
- –name: 为容器命名
- –dns 8.8.8.8 指定容器使用的 DNS 服务器, 默认和宿主及一样
- -h: 指定容器主机名
- -m: 分配最大内存
- –net=“bridge”: 指定容器的连接类型, 支持 bridge/host/none/container 四种
- –expose=[]: 开放一组端口
创建后容器暂停运行
[root@qchun qchun]# docker run -i -t --name run_test ubuntu /bin/bash
创建容器后暂停运行
[root@qchun qchun]# docker run -itd --name run_test2 ubuntu/ubuntu:v2 /bin/bash
docker start/stop/restart 命令
启动/停止/重启 一个或多个容器.
docker start/stop/restart [option] container [contaienr…]
一次启动多个
docker start 3bffb9966452 13ffa29f29c4 f9c63eadf703
一次关闭多个
[root@qchun qchun]# docker stop 3bffb9966452 13ffa29f29c4 f9c63eadf703
重启动多个
[root@qchun qchun]# docker restart 3bffb9966452 13ffa29f29c4 f9c63eadf703
3bffb9966452
13ffa29f29c4
f9c63eadf703
[root@qchun qchun]# docker ps -as
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES SIZE
3689992cbdb0 ubuntu/ubuntu:v2 "/bin/bash" 8 minutes ago Up 8 minutes run_test2 254B (virtual 95.5MB)
3bffb9966452 ubuntu "/bin/bash" 14 minutes ago Up 3 seconds run_test 5B (virtual 73.9MB)
13ffa29f29c4 ubuntu "/bin/bash" 29 minutes ago Up 2 seconds elegant_ganguly 0B (virtual 73.9MB)
f9c63eadf703 ubuntu/ubuntu:v2 "/bin/bash" 5 hours ago Up 2 seconds heuristic_borg 282B (virtual 95.5MB)
docker kill 命令
杀掉一个运行中的容器(不让其运行, 终止进程, 不是 pause), 使运行的容器处于 exited 状态. 如果停止一个位处于运行状态的容器则会报错.
docker kill container [container…] docker kill -s KILL container_name
- -s 向被杀容器发送一个 KILL 信号,
- container_name 被杀容器名称
[root@qchun qchun]# docker kill 3bffb9966452 13ffa29f29c4 f9c63eadf703
[root@qchun qchun]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
3689992cbdb0 ubuntu/ubuntu:v2 "/bin/bash" 10 minutes ago Up 10 minutes run_test2
3bffb9966452 ubuntu "/bin/bash" 16 minutes ago Exited (137) About a minute ago run_test
13ffa29f29c4 ubuntu "/bin/bash" 32 minutes ago Exited (137) About a minute ago elegant_ganguly
f9c63eadf703 ubuntu/ubuntu:v2 "/bin/bash" 5 hours ago Exited (137) About a minute ago heuristic_borg
docker rm 命令
删除一个或者多个容器
docker rm [option] container [container…]
- -f : 强制删除一个容器
- -I : 删除容器间的网络连接, 而不时容器本身
- -v 删除与容器关联的卷
[root@qchun qchun]# docker rm 3bffb9966452 13ffa29f29c4 f9c63eadf703
3bffb9966452
13ffa29f29c4
f9c63eadf703
[root@qchun qchun]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
3689992cbdb0 ubuntu/ubuntu:v2 "/bin/bash" 12 minutes ago Up 12 minutes run_test2
pause/unpause 暂停/恢复容器进程命令
暂停/恢复 容器中所有进程
docker pause [OPTIONS] CONTAINER [CONTAINER…] docker unpause [OPTIONS] CONTAINER [CONTAINER…
[root@qchun qchun]# docker pause 3689992cbdb0
状态
Up 13 minutes (Paused)
[root@qchun qchun]# docker unpause 3689992cbdb0
状态
Up 15 minutes
docker exec 命令
ocker exec [OPTIONS] CONTAINER COMMAND [ARG…]
-d : 分离模式, 后台运行 -i : 不写页保持 STDIN 打开 -t : 为容器分配终端(伪)
带d最后边的命令无效, 不进入bash
[root@qchun qchun]# docker exec -t 3689992cbdb0 /bin/bash
root@3689992cbdb0:/#
docker create 用 image 创建容器命令
用 image 创建一个容器但不启动它(容器处于 created 状态), 用法同 run
docker images 命令 查看本地镜像文件
docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu/ubuntu v2 929d98e33824 5 hours ago 95.5MB
ubuntu latest 1d622ef86b13 3 weeks ago 73.9MB
- REPOSITORY:表示镜像的仓库源 TAG:
- 镜像的标签 IMAGE
- ID:镜像 ID
- CREATED:镜像创建时间
- SIZE:镜像大小
docker ps 查看容器信息
docker ps [option…]
- -a :显示所有的容器,包括未运行的。
- -f :根据条件过滤显示的内容。
- –format :指定返回值的模板文件。
- -l :显示最近创建的容器。
- -n :列出最近创建的 n 个容器。
- –no-trunc :不截断输出。
- -q :静默模式,只显示容器编号。
- -s :显示总的文件大小。
docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
3689992cbdb0 ubuntu/ubuntu:v2 "/bin/bash" 21 minutes ago Up 21 minutes run_test2
状态有 7 种:
- created(已创建)
- restarting(重启中)
- running(运行中)
- removing(迁移中)
- paused(暂停)
- exited(停止)
- dead(死亡)
搜索镜像 image
docker search <term / imagesName>
在 docker 公共仓库中搜索镜像
docker search mysql
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
mysql MySQL is a widely used, open-source relation… 9520 [OK]
mariadb MariaDB is a community-developed fork of MyS… 3456 [OK]
mysql/mysql-server Optimized MySQL Server Docker images. Create… 698 [OK]
percona Percona Server is a fork of the MySQL relati… 485 [OK]
centos/mysql-57-centos7 MySQL 5.7 SQL database server 75
mysql/mysql-cluster Experimental MySQL Cluster Docker images. Cr… 69
centurylink/mysql Image containing mysql. Optimized to be link… 61 [OK]
deitch/mysql-backup REPLACED! Please use http://hub.docker.com/r… 41 [OK]
bitnami/mysql Bitnami MySQL Docker Image 39 [OK]
tutum/mysql Base docker image to run a MySQL database se… 35
schickling/mysql-backup-s3 Backup MySQL to S3 (supports periodic backup… 30 [OK]
prom/mysqld-exporter 28 [OK]
linuxserver/mysql A Mysql container, brought to you by LinuxSe… 25
centos/mysql-56-centos7 MySQL 5.6 SQL database server 19
circleci/mysql MySQL is a widely used, open-source relation… 19
databack/mysql-backup Back up mysql databases to... anywhere! 18
mysql/mysql-router MySQL Router provides transparent routing be… 15
arey/mysql-client Run a MySQL client from a docker container 14 [OK]
fradelg/mysql-cron-backup MySQL/MariaDB database backup using cron tas… 6 [OK]
openshift/mysql-55-centos7 DEPRECATED: A Centos7 based MySQL v5.5 image… 6
devilbox/mysql Retagged MySQL, MariaDB and PerconaDB offici… 3
ansibleplaybookbundle/mysql-apb An APB which deploys RHSCL MySQL 2 [OK]
jelastic/mysql An image of the MySQL database server mainta… 1
...
docker inspect 查看容器参数, 以 json 显示
docker inspect [option] 容器名字/id [容器名字/id…]
- -f :指定返回值的模板文件。
- -s :显示总的文件大小。
- -type : 指定类型返回 JSON。
[root@qchun qchun]# docker inspect 3689992cbdb0
docker top 命令
查看容器中运行的进程信息,支持 ps 命令参数。 容器运行时不一定有/bin/bash 终端来交互执行 top 命令,而且容器还不一定有 top 命令,可以使用 docker top 来实现查看 container 中正在运行的进程。
docker top [option] conatienr [ ps option]
[root@qchun qchun]# docker top 265f153c867c
UID PID PPID C STIME TTY TIME CMD
root 6146 6101 0 21:16 pts/0 00:00:00 /bin/bash
docker attach 登陆已运行容器
连接到正在运行中的容器。
docker attach [OPTIONS] CONTAINER
docker logs 查看日志
查看容器运行日志
-f : 跟踪日志输出 –since : 显示某个开始时间的所有日志 -t : 显示时间戳 – tail : 进列出最新的 n 条容器日志
docker export
将容器作为一个 tar 归档文件导出到 STDOUT。
docker export [option] container > 位置/文件名 docker export [option] container
-o : 将输入内容写道文件
两种写法均可
[root@qchun ~]# docker export -o test_export.tar 3689992cbdb0
[root@qchun ~]# docker export 3689992cbdb0 > ./test_export2.tar
import 从归档文件(tar)创建文件
docker import [option] 路径/文件 [repository[:tag]]
- -c :应用 docker 指令创建镜像;
- -m :提交时的说明文字;
[root@qchun ~]# docker import -m "test import" ./test_export.tar test_import/tar_to_img:v1
rmi 删除本地一个或多少镜像
docker rmi [option] image [image…]
- -f :强制删除;
- –no-prune :不移除该镜像的过程镜像,默认移除;
save 将指定的镜像保存为 tar 归档文件
docker save [option] image [image…]
-o : 输出到文件
[root@qchun ~]# docker save -o add_my_ubuntu.tar test_import/tar_to_img
-rw------- 1 root root 96900096 May 21 22:13 add_my_ubuntu.tar
load 导入使用 docker save 命令导出的镜像
docker load [option]
[root@qchun ~]# docker load < add_my_ubuntu.tar
注意: 导入前本地 repository 要有之前使用 save 导出的源 image, 如果没有报错, 容器导入的 tar 不能加载(load)到本地 repository. 总结在哪导出, 加载到哪.
docker port 查看容器映射端口
列出指定的容器的端口映射,或者查找将 PRIVATE_PORT NAT 到面向公众的端口。
docker port container [private_port [/proto]]
[root@qchun ~]# docker run -itd -p 5000:5000 ubuntu/ubuntu:v2 /bin/bash
[root@qchun ~]# docker port 31d578563b4a
5000/tcp -> 0.0.0.0:5000
主机0.0.0.0:5000映射到容器5000, 默认为TCP, 也可以指定为UDP
docker commit 从容器创建一个镜像
docker commit [option] container [image_name[:tag_name]]
- -a :提交的镜像作者;
- -c :使用 Dockerfile 指令来创建镜像;
- -m :提交时的说明文字;
- -p :在 commit 时,将容器暂停。
[root@qchun ~]# docker commit -a "lqc" -m "test commit" -p test my/ubuntu:v1.0
REPOSITORY TAG IMAGE ID CREATED SIZE
my/ubuntu v1.0 c267dce3adda 9 seconds ago 95.5MB
docker cp 用于容器与主机之间拷贝数据
docker cp [option] conatiner:scr_path dest_path|- docker cp [option] src_path - contaienr:dest_path
-L : 保持源与目标中的连接
!容器的路径必须写绝对路径
将test容器中的文件夹拷贝报宿主机的/root/test下
[root@qchun test]# docker cp test:/root/qchun /root/test
主机传容器, 将路径反过来就行了
docker pull 从镜像仓库中拉取或者更新指定镜像
docker pull [option] name[:tag]
-a : 拉取所有 targetd 镜像
一般使用拉取最新XXX镜像
docker pull XXX:latest
docker push 将本地的镜像上传到镜像仓库,要先登陆到镜像仓库
docker push [option] name[:tag]
search 从 Docker Hub 查找镜像
docker search [option] term/name
- –automated :只列出 automated build 类型的镜像;
- –no-trunc :显示完整的镜像描述;
- -s :列出收藏数不小于指定值的镜像。
docker tag 标记本地镜像并将其归入某一仓库
docker tag [option] image[:tag] [registryhost/][username/]name[:tag]
[root@qchun qchun]# docker tag my/ubuntu:v1.0 my/ubuntu:v2.0
REPOSITORY TAG IMAGE ID CREATED SIZE
my/ubuntu v1.0 c267dce3adda 12 minutes ago 95.5MB
my/ubuntu v2.0 c267dce3adda 12 minutes ago 95.5MB
(完)