人生有涯,学海无涯
一、帮忙命令
docker version # 显示 docker 版本信息
docker info # 显示 docker 零碎信息,包含镜像和容器数量
docker 命令 --help # 帮忙信息
帮忙文档:https://docs.docker.com/engin…
二、镜像命令
帮忙文档:https://docs.docker.com/engin…
docker images 查看所有本地的主机上的镜像
[root@jiangwang /]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
hello-world latest d1165f221234 3 days ago 13.3kB
# 解释
REPOSITORY 镜像的仓库源
TAG 镜像的标签
IMAGE ID 镜像的 id
CREATED 镜像的创立工夫
SIZE 镜像的大小
# 可选项
-a, --all # 列出所有的镜像
-q, --quiet # 只显示 id
[root@jiangwang /]# docker images -a
REPOSITORY TAG IMAGE ID CREATED SIZE
hello-world latest d1165f221234 3 days ago 13.3kB
[root@jiangwang /]# docker images -q
d1165f221234
[root@jiangwang /]# docker images -aq
d1165f221234
[root@jiangwang /]#
docker search 搜寻镜像
[root@jiangwang /]# docker search mysql
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
mysql MySQL is a widely used, open-source relation… 10589 [OK]
mariadb MariaDB Server is a high performing open sou… 3963 [OK]
# 可选项,通过镜像来过滤
-f, --filter=STARS=3000 # 搜寻进去的镜像就是 STARS 大于 3000 的
[root@jiangwang /]# docker search mysql --filter=STARS=3000
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
mysql MySQL is a widely used, open-source relation… 10589 [OK]
mariadb MariaDB Server is a high performing open sou… 3963 [OK]
[root@jiangwang /]# docker search mysql --filter=STARS=5000
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
mysql MySQL is a widely used, open-source relation… 10589 [OK]
[root@jiangwang /]#
docker pull 下载镜像
docker pull image_name
# 下载一个 mysql 的镜像,默认下载最新的镜像
[root@jiangwang /]# docker pull mysql
# 下载指定版本的镜像
[root@jiangwang /]# docker pull mysql:5.7
# 查看一下下载的所有镜像
[root@jiangwang /]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
hello-world latest d1165f221234 3 days ago 13.3kB
mysql 5.7 a70d36bc331a 7 weeks ago 449MB
mysql latest c8562eaf9d81 7 weeks ago 546MB
删除镜像
# 依据 id 删除镜像 docker rmi -f a70d36bc331a
[root@jiangwang /]# docker rmi -f a70d36bc331a
Untagged: mysql:5.7
Untagged: mysql@sha256:b3d1eff023f698cd433695c9506171f0d08a8f92a0c8063c1a4d9db9a55808df
Deleted: sha256:a70d36bc331a13d297f882d3d63137d24b804f29fa67158c40ad91d5050c39c5
Deleted: sha256:50c77bf7bcddd1f1d97789d80ac2404eec22c860c104e858620d2a2e321f0ef7
Deleted: sha256:14244329b83dfc8982398ee4104a548385652d2bffb957798ff86a419013efd6
Deleted: sha256:6d990477f90af28473eb601a9bca22253f6381e053c5a8edda0a4f027e124a3c
Deleted: sha256:ee0449796df204071589162fc16f8d65586312a40c68d1ba156c93c56f5e5ce8
[root@jiangwang /]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
hello-world latest d1165f221234 3 days ago 13.3kB
mysql latest c8562eaf9d81 7 weeks ago 546MB
[root@jiangwang /]#
## 删除所有镜像
[root@jiangwang /]# docker rmi -f $(docker images -aq)
[root@jiangwang /]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
[root@jiangwang /]#
# 删除多个镜像
docker rmi -f 镜像 id 镜像 id 镜像 id
三、容器命令
阐明:有了镜像能力创立容器,Linux,下载一个 centos 镜像
[root@jiangwang /]# docker pull centos
Using default tag: latest
latest: Pulling from library/centos
7a0437f04f83: Pull complete
Digest: sha256:5528e8b1b1719d34604c87e11dcd1c0a20bedf46e83b5632cdeac91b8c04efc1
Status: Downloaded newer image for centos:latest
docker.io/library/centos:latest
[root@jiangwang /]#
新建容器并启动
docker run [可选参数] image
# 参数阐明
--name="Name" 容器名字 tomcat01 tomcat02, 用来辨别容器
-d 后盾形式运行
-it 应用交互方式运行,进入容器查看内容
-p 指定容器端口 -p 8080:8080
-p ip: 主机端口: 容器端口
-p 主机端口: 容器端口(罕用)-p 容器端口
容器端口
-P 随机指定端口
# 测试, 启动并进入容器
[root@jiangwang /]# docker run -it centos /bin/bash
[root@685c34c813d5 /]# ls # 查看容器内的 centos
bin etc lib lost+found mnt proc run srv tmp var
dev home lib64 media opt root sbin sys usr
# 从容器中退回主机
[root@685c34c813d5 /]# exit
exit
[root@jiangwang /]# ls
bin dev home lib lost+found mnt patch root sbin sys usr www
boot etc install.sh lib64 media opt proc run srv tmp var
查看以后有哪些容器正在运行
# docker ps 显示失常运行的容器
-a # 显示以后正在运行的容器 + 历史运行过的容器
-n=? # 显示最近创立的容器
-q # 只显示容器的编号
[root@jiangwang /]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
[root@jiangwang /]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
685c34c813d5 centos "/bin/bash" 3 minutes ago Exited (0) About a minute ago pensive_shaw
db8909cfa9cc d1165f221234 "/hello" 4 hours ago Exited (0) 4 hours ago adoring_shockley
[root@jiangwang /]# docker ps -n=1
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
685c34c813d5 centos "/bin/bash" 7 minutes ago Exited (0) 5 minutes ago pensive_shaw
[root@jiangwang /]# docker ps -aq
685c34c813d5
db8909cfa9cc
[root@jiangwang /]#
退出容器
exit # 间接退出容器并进行
Ctrl + P + Q # 退出容器然而容器不进行
[root@jiangwang /]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
[root@jiangwang /]# docker run -it centos /bin/bash
[root@589fa10f7998 /]# [root@jiangwang /]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
589fa10f7998 centos "/bin/bash" 31 seconds ago Up 29 seconds magical_noether
[root@jiangwang /]#
启动、进行、重启容器命令
docker start container_name/container_id # 启动容器
docker stop container_name/container_id # 进行以后正在运行的容器
docker restart container_name/container_id # 重启容器
docker kill container_name/container_id # 强制进行以后容器
后盾启动一个容器后,如果想进入到这个容器,能够应用 attach 命令
docker attach container_name/container_id
删除容器的命令
docker rm container_name/container_id # 不能删除正在运行的容器
删除所有进行的容器
docker rm -f $(docker ps -a -q)
查看以后零碎 Docker 信息
docker info
从 Docker hub 上下载某个镜像
docker pull centos:latest
查找 ocker Hub 上的 nginx 镜像
docker search nginx
四、罕用的其余命令
后盾启动容器
# docker run -d 镜像名
[root@jiangwang /]# docker run -d centos
dd83c9017b8b6cb2ed07d1943e0db8421b7ad0864ab291e7d470a6af76a8a6a9
[root@jiangwang /]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
[root@jiangwang /]#
# 问题 docker ps,发现 centos 进行了
# 常见的坑:docker 容器应用后盾运行,就必须要有一个前台过程,docker 发现没有利用,就主动进行
# nginx, 容器启动后,发现袭击没有提供服务,就立即进行,就是没有程序了
查看日志
docker logs -f -t --tail 容器
查看容器中的过程信息 ps
# 命令 docker top 容器 id
[root@jiangwang /]# docker top fbff5b668c3a
UID PID PPID C STIME TTY TIME CMD
root 4345 4324 0 16:59 pts/0 00:00:00 /bin/bash
查看镜像中的元数据
# docker inspect 容器 id
# 测试
[root@jiangwang /]# docker inspect 容器 id
进入以后正在运行的容器
# 命令 docker exec -it 容器 id /bin/bash
# 测试
[root@jiangwang /]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
fbff5b668c3a centos "/bin/bash" 16 minutes ago Up 16 minutes blissful
[root@jiangwang /]# docker exec -it fbff5b668c3a /bin/bash
[root@fbff5b668c3a /]# ls
bin etc lib lost+found mnt proc run srv tmp var
dev home lib64 media opt root sbin sys usr
[root@fbff5b668c3a /]# ps -ef
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 08:59 pts/0 00:00:00 /bin/bash
root 16 0 0 09:16 pts/1 00:00:00 /bin/bash
root 32 16 0 09:17 pts/1 00:00:00 ps -ef
# 形式二、docker attach 容器 id
[root@jiangwang /]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
fbff5b668c3a centos "/bin/bash" 20 minutes ago Up 20 minutes blissful_tu
[root@jiangwang /]# docker attach fbff5b668c3a
[root@fbff5b668c3a /]# ls
bin etc lib lost+found mnt proc run srv tmp var
dev home lib64 media opt root sbin sys usr
[root@fbff5b668c3a /]#
从容器内拷贝文件到主机上
# 命令 docker cp 容器 id: 容器内门路 目标的主机门路
# 进入容器
[root@jiangwang /]# docker attach fbff5b668c3a
[root@fbff5b668c3a /]# ls
bin etc lib lost+found mnt proc run srv tmp var
dev home lib64 media opt root sbin sys usr
[root@fbff5b668c3a /]# cd home/
# 在容器内 home 门路下新建一个 test.java 文件
[root@fbff5b668c3a home]# touch test.java
[root@fbff5b668c3a home]# ls
test.java
[root@fbff5b668c3a home]# exit
exit
[root@jiangwang /]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
# 将容器内的 test.java 文件拷贝到 linux 主机上
[root@jiangwang /]# docker cp fbff5b668c3a:/home/test.java /home
[root@jiangwang /]# cd home/
# 胜利拷贝到 /home 目录下
[root@jiangwang home]# ls
f2 f3 jiangwang test.java www