启动docker : systemctl start docker
停止docker:systemctl stop docker
重启docker:systemctl restart docker
查看docker状态:systemctl status docker
开机启动:systemctl enable docker
查看docker概要信息:docker info
查看docker总体帮助文档:docker --help
查看docker命令帮助文档:docker 具体命令 --help
[root@localhost ~]# docker cp --help
Usage: docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH|-
docker cp [OPTIONS] SRC_PATH|- CONTAINER:DEST_PATH
Copy files/folders between a container and the local filesystem
Use '-' as the source to read a tar archive from stdin
and extract it to a directory destination in a container.
Use '-' as the destination to stream a tar archive of a
container source to stdout.
Options:
-a, --archive Archive mode (copy all uid/gid information)
-L, --follow-link Always follow symbol link in SRC_PATH
列出本地主机上的镜像:docker images
OPTIONS:
[root@localhost ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
minio/minio latest 1370947c8f2f 2 weeks ago 363MB
lhstack/small-dns latest 96cd34ad57b3 10 months ago 12.4MB
agent 1.0.0 918981bf63a2 11 months ago 574MB
openjdk 8 5bf086edab5e 12 months ago 526MB
mongo latest 96c85f49715a 12 months ago 690MB
redis latest 1ca2c2a1b554 12 months ago 117MB
mariadb latest 6e0162b44a5f 14 months ago 414MB
openresty/openresty 1.19.9.1-4-alpine-fat b9ec71f7ed51 18 months ago 340MB
docker.elastic.co/elasticsearch/elasticsearch 7.2.0 0efa6a3de177 3 years ago 861MB
mobz/elasticsearch-head 5-alpine e2a76963bc18 6 years ago 78.9MB
[root@localhost ~]# docker images -a
REPOSITORY TAG IMAGE ID CREATED SIZE
minio/minio latest 1370947c8f2f 2 weeks ago 363MB
lhstack/small-dns latest 96cd34ad57b3 10 months ago 12.4MB
agent 1.0.0 918981bf63a2 11 months ago 574MB
3827347179f4 11 months ago 574MB
f3502886a517 11 months ago 574MB
94d28d355ddc 11 months ago 574MB
3d9be7f6987b 11 months ago 526MB
141fbfacaf04 11 months ago 526MB
d98daa7f14e1 11 months ago 526MB
openjdk 8 5bf086edab5e 12 months ago 526MB
mongo latest 96c85f49715a 12 months ago 690MB
redis latest 1ca2c2a1b554 12 months ago 117MB
mariadb latest 6e0162b44a5f 14 months ago 414MB
openresty/openresty 1.19.9.1-4-alpine-fat b9ec71f7ed51 18 months ago 340MB
docker.elastic.co/elasticsearch/elasticsearch 7.2.0 0efa6a3de177 3 years ago 861MB
mobz/elasticsearch-head 5-alpine e2a76963bc18 6 years ago 78.9MB
[root@localhost ~]# docker images -q
1370947c8f2f
96cd34ad57b3
918981bf63a2
5bf086edab5e
96c85f49715a
1ca2c2a1b554
6e0162b44a5f
b9ec71f7ed51
0efa6a3de177
e2a76963bc18
同一仓库源可以有多个TAG版本,代表这个仓库源的不同版本,使用
REPOSITORY:TAG
来定义不同的镜像。如果不指定一个镜像的版本标签,例如只使用 ubuntu,docker 将默认使用ubuntu:latest
镜像
虚悬镜像dangling image:上图中仓库名、标签都是的镜像
docker search 镜像名字
:从docker hub(https://hub.docker.com)上查找对应的镜像。
[root@localhost ~]# docker search hello-world
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
hello-world Hello World! (an example of minimal Dockeriz… 2039 [OK]
kitematic/hello-world-nginx A light-weight nginx container that demonstr… 152
tutum/hello-world Image to test docker deployments. Has Apache… 90 [OK]
dockercloud/hello-world Hello World! 20 [OK]
crccheck/hello-world Hello World web server in under 2.5 MB 17 [OK]
vad1mo/hello-world-rest A simple REST Service that echoes back all t… 7 [OK]
rancher/hello-world 4
ansibleplaybookbundle/hello-world-db-apb An APB which deploys a sample Hello World! a… 2 [OK]
ppc64le/hello-world Hello World! (an example of minimal Dockeriz… 2
thomaspoignant/hello-world-rest-json This project is a REST hello-world API to bu… 2
ansibleplaybookbundle/hello-world-apb An APB which deploys a sample Hello World! a… 1 [OK]
businessgeeks00/hello-world-nodejs 0
okteto/hello-world 0
strimzi/hello-world-consumer 0
strimzi/hello-world-producer 0
golift/hello-world Hello World Go-App built by Go Lift Applicat… 0
koudaiii/hello-world 0
freddiedevops/hello-world-spring-boot 0
strimzi/hello-world-streams 0
garystafford/hello-world Simple hello-world Spring Boot service for t… 0 [OK]
tacc/hello-world 0
tsepotesting123/hello-world 0
kevindockercompany/hello-world 0
dandando/hello-world-dotnet 0
armswdev/c-hello-world Simple hello-world C program on Alpine Linux… 0
docker search [OPTIONS] 镜像名字
:条件查找镜像
[root@localhost ~]# docker search --limit 3 hello-world
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
hello-world Hello World! (an example of minimal Dockeriz… 2039 [OK]
rancher/hello-world 4
okteto/hello-world 0
docker pull 镜像名字
:拉取最新版本(相当于docker pull 镜像名字 latest
)docker pull 镜像名字 [:tag]
:拉取指定版本[root@localhost ~]# docker pull hello-world
Using default tag: latest
latest: Pulling from library/hello-world
719385e32844: Pull complete
Digest: sha256:fc6cf906cbfa013e80938cdf0bb199fbdbb86d6e3e013783e5a766f50f5dbce0
Status: Downloaded newer image for hello-world:latest
docker.io/library/hello-world:latest
[root@localhost ~]# docker pull redis:6.2.4
6.2.4: Pulling from library/redis
33847f680f63: Pull complete
26a746039521: Pull complete
18d87da94363: Pull complete
78e9d65cb9ae: Pull complete
985fcd1202ac: Pull complete
ffbec49e5b6a: Pull complete
Digest: sha256:6bc98f513258e0c17bd150a7a26f38a8ce3e7d584f0c451cf31df70d461a200a
Status: Downloaded newer image for redis:6.2.4
docker.io/library/redis:6.2.4
查看镜像/容器/数据卷所占空间
[root@localhost ~]# docker system df
TYPE TOTAL ACTIVE SIZE RECLAIMABLE
Images 12 9 3.556GB 631.5MB (17%)
Containers 10 3 318.4kB 318.4kB (99%)
Local Volumes 19 6 1.205GB 119.9MB (9%)
Build Cache 0 0 0B 0B
docker rmi 镜像名字/ID
docker rmi -f 镜像ID
docker rmi -f 镜像名1:TAG 镜像名2:TAG
docker rmi -f $(docker images -qa)
[root@localhost ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
minio/minio latest 1370947c8f2f 2 weeks ago 363MB
hello-world latest 9c7a54a9a43c 4 weeks ago 13.3kB
lhstack/small-dns latest 96cd34ad57b3 10 months ago 12.4MB
agent 1.0.0 918981bf63a2 11 months ago 574MB
openjdk 8 5bf086edab5e 12 months ago 526MB
mongo latest 96c85f49715a 12 months ago 690MB
redis latest 1ca2c2a1b554 12 months ago 117MB
mariadb latest 6e0162b44a5f 14 months ago 414MB
openresty/openresty 1.19.9.1-4-alpine-fat b9ec71f7ed51 18 months ago 340MB
redis 6.2.4 9dae5b22eb39 22 months ago 105MB
docker.elastic.co/elasticsearch/elasticsearch 7.2.0 0efa6a3de177 3 years ago 861MB
mobz/elasticsearch-head 5-alpine e2a76963bc18 6 years ago 78.9MB
[root@localhost ~]# docker rmi 9dae5b22eb39
Untagged: redis:6.2.4
Untagged: redis@sha256:6bc98f513258e0c17bd150a7a26f38a8ce3e7d584f0c451cf31df70d461a200a
Deleted: sha256:9dae5b22eb39cce1b58967d6425a2617b51338a2fdab3a05a66d2fa12f11f094
Deleted: sha256:38887028d023f832c8af04be98c6794e22f6ccf77f523d364fe37888970f56db
Deleted: sha256:8d159ba2313ce920e80fbc1cc5f5c3c5e99d36f601531720f2ccbb966b79376c
Deleted: sha256:64cee1d06a6acc67a7125d52976f840b0aa9e52719d1dbf631420f32482d4ccd
Deleted: sha256:188c498579cef37b65a93d6448c6b129fa07d5740fc213a18843ff22d80cd10d
Deleted: sha256:2117165cd53c98f13ec7af36c9d8acd239fc541c847efaccb49885decf615d68
Deleted: sha256:814bff7343242acfd20a2c841e041dd57c50f0cf844d4abd2329f78b992197f4
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
-p hostPort:containerPort:端口映射 -p 8080:80
-p ip:hostPort:containerPort:配置监听地址 -p 10.0.0.0:8080:80
-p ip::containerPort:随机分配端口 -p 10.0.0.0::80
-p hostPort:containerPort:udp:指定协议 -p 8080:80:tcp
-p 80:80 -p 443:443:指定多个
hongcaixia@hongcaixiadeMacBook-Pro ~ % docker run -it centos bash
[root@83c857543d80 /]# ps -ef
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 13:19 pts/0 00:00:00 bash
root 16 1 0 13:20 pts/0 00:00:00 ps -ef
[root@83c857543d80 /]# ls -lf
home media etc sbin mnt . bin tmp lib dev opt root run proc sys usr srv .. lib64 var lost+found .dockerenv
[root@83c857543d80 /]# exit
exit
hongcaixia@hongcaixiadeMacBook-Pro ~ % docker run --name=mycentos centos
hongcaixia@hongcaixiadeMacBook-Pro ~ % docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
4e548998672e centos "/bin/bash" 5 seconds ago Exited (0) 3 seconds ago mycentos
83c857543d80 centos "bash" 10 minutes ago Exited (0) 7 minutes ago naughty_lehmann
7355d7e19de5 centos "bash" 10 minutes ago Exited (0) 10 minutes ago heuristic_edison
docker ps [OPTIONS]
hongcaixia@hongcaixiadeMacBook-Pro ~ % docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
4e548998672e centos "/bin/bash" 5 seconds ago Exited (0) 3 seconds ago mycentos
83c857543d80 centos "bash" 10 minutes ago Exited (0) 7 minutes ago naughty_lehmann
7355d7e19de5 centos "bash" 10 minutes ago Exited (0) 10 minutes ago heuristic_edison
e7e2b18fadf0 apacherocketmq/rocketmq-dashboard:latest "sh -c 'java $JAVA_O…" 7 weeks ago Exited (255) 4 days ago 0.0.0.0:8080->8080/tcp, :::8080->8080/tcp rocketmq-dashboard
e13b2badcf88 xuxueli/xxl-job-admin:2.3.1 "sh -c 'java -jar $J…" 2 months ago Up 13 hours 0.0.0.0:8787->8081/tcp, :::8787->8081/tcp xxl-job
da73c24a7fda nginx "/docker-entrypoint.…" 2 months ago Exited (0) 2 months ago nginx
06d84894f6ca centos:latest "/bin/bash" 2 months ago Up 12 hours elated_matsumoto
5c2845b99941 docker.elastic.co/elasticsearch/elasticsearch:7.1.0 "/usr/local/bin/dock…" 4 months ago Exited (255) 2 months ago 0.0.0.0:9200->9200/tcp, :::9200->9200/tcp, 9300/tcp es7_01
a14873b0bdec docker.elastic.co/kibana/kibana:7.1.0 "/usr/local/bin/kiba…" 4 months ago Exited (255) 2 months ago 0.0.0.0:5601->5601/tcp, :::5601->5601/tcp kibana7
c089a67feb25 docker.elastic.co/elasticsearch/elasticsearch:7.1.0 "/usr/local/bin/dock…" 4 months ago Exited (137) 4 months ago es7_02
5047a993af2a lmenezes/cerebro:0.8.3 "/opt/cerebro/bin/ce…" 4 months ago Exited (255) 2 months ago 0.0.0.0:9000->9000/tcp, :::9000->9000/tcp cerebro
0f12d73328e5 hello-world "/hello" 4 months ago Exited (0) 4 months ago tender_jackson
4716629faa58 bitnami/kafka "/opt/bitnami/script…" 4 months ago Exited (255) 4 months ago 9092/tcp sad_booth
21a958642038 zookeeper "/docker-entrypoint.…" 4 months ago Exited (255) 4 months ago 2181/tcp, 2888/tcp, 3888/tcp, 8080/tcp elegant_antonelli
hongcaixia@hongcaixiadeMacBook-Pro ~ % docker ps -q
e13b2badcf88
06d84894f6ca
hongcaixia@hongcaixiadeMacBook-Pro ~ % docker ps -n 1
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
4e548998672e centos "/bin/bash" 4 minutes ago Exited (0) 4 minutes ago mycentos
hongcaixia@hongcaixiadeMacBook-Pro ~ %
docker start 容器ID/容器名
hongcaixia@hongcaixiadeMacBook-Pro ~ % docker ps -n2
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
4e548998672e centos "/bin/bash" 11 minutes ago Exited (0) 11 minutes ago mycentos
83c857543d80 centos "bash" 22 minutes ago Exited (0) 19 minutes ago naughty_lehmann
hongcaixia@hongcaixiadeMacBook-Pro ~ % docker start 4e548998672e
4e548998672e
hongcaixia@hongcaixiadeMacBook-Pro ~ %
docker restart 容器ID/容器名
docker stop 容器ID/容器名
docker kill 容器id/容器名
docker rm 容器id
一次性删除多个容器实例:
docker rm -f $(docker ps -a -q)
docker ps -a -q | xargs docker rm
hongcaixia@hongcaixiadeMacBook-Pro ~ % docker ps -n2
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
4e548998672e centos "/bin/bash" 13 minutes ago Exited (0) 2 seconds ago mycentos
83c857543d80 centos "bash" 23 minutes ago Exited (0) 20 minutes ago naughty_lehmann
hongcaixia@hongcaixiadeMacBook-Pro ~ % docker rm 4e548998672e
4e548998672e
hongcaixia@hongcaixiadeMacBook-Pro ~ % docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e13b2badcf88 xuxueli/xxl-job-admin:2.3.1 "sh -c 'java -jar $J…" 2 months ago Up 13 hours 0.0.0.0:8787->8081/tcp, :::8787->8081/tcp xxl-job
06d84894f6ca centos:latest "/bin/bash" 2 months ago Up 13 hours elated_matsumoto
hongcaixia@hongcaixiadeMacBook-Pro ~ % docker rm e13b2badcf88
Error response from daemon: You cannot remove a running container e13b2badcf884fc97d7ccfe85a066c7b61ae8642715ce08a64f9c00f64c7e955. Stop the container before attempting removal or force remove
hongcaixia@hongcaixiadeMacBook-Pro ~ % docker rm -f e13b2badcf88
e13b2badcf88
run命令执行过程:
1.Docker在本地寻找镜像
2.本机存在镜像,以该镜像为模板生产容器实例运行
3.本机不存在镜像,去docker hub上查找镜像
4.docker hub找不到,返回错误,查不到该镜像
5.docker hub找到,下载该镜像到本地,以该镜像为模板生产容器实例运行
Docker容器后台运行,就必须有一个前台进程。容器运行的命令如果不是那些一直挂起的命令(比如运行top,tail),就是会自动退出的。
hongcaixia@hongcaixiadeMacBook-Pro ~ % docker run --name=mycentos centos
hongcaixia@hongcaixiadeMacBook-Pro ~ % docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
docker 的服务是在后台运行的, 可以过 -d 指定容器的后台运行模式。
docker run -d 容器名
hongcaixia@hongcaixiadeMacBook-Pro ~ % docker run -d redis
417d29580fad28a8c64b16d52b86c50249f90645a9df68d86db3cee0645b6467
hongcaixia@hongcaixiadeMacBook-Pro ~ % docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
417d29580fad redis "docker-entrypoint.s…" 3 seconds ago Up 2 seconds 6379/tcp hopeful_pascal
hongcaixia@hongcaixiadeMacBook-Pro ~ %
重新进入已经退出了交互界面的正在运行的容器的交互界面:
docker exec -it 容器ID /bin/bash
:在容器中打开新的终端,可以启动新的进程;用exit退出,不会导致容器的停止。(推荐)docker attach 容器ID
:直接进入容器启动命令的终端,不会启动新的进程;用exit退出,会导致容器的停止。docker logs 容器ID
docker top 容器ID
root@hmd-jenkins:~# docker top a3d02a8c6f13
UID PID PPID C STIME TTY TIME CMD
root 751240 751218 0 13:33 ? 00:00:01 tini java -javaagent:./jacocoagent.jar=includes=com.*,output=tcpserver,port=17297,address=0.0.0.0,append=true -jar api.jar --spring.profiles.active=dev
root 751269 751240 1 13:33 ? 00:06:26 java -javaagent:./jacocoagent.jar=includes=com.*,output=tcpserver,port=17297,address=0.0.0.0,append=true -jar api.jar --spring.profiles.active=dev
root@hmd-jenkins:~#
docker inspect 容器ID
docker cp 容器ID:容器内路径 目的主机路径
export: 导出容器的内容留作为一个tar归档文件,对应import命令
import: 从tar包中的内容创建一个新的文件系统再导入为镜像,对应export
把镜像导出成文件:docker export 容器ID > 文件名.tar
把文件导入到容器中:cat 文件名.tar | docker import - 镜像用户/镜像名:镜像版本号