目录
一、镜像命令
1、docker images 查看镜像
1、语法:
2、解释:
3、docker images --help:
4、案例:
2、docker search 搜索镜像
1、语法:
2、解释:
3、docker search --help:
4、案例:
3、docker pull 下载镜像
1、语法:
2、案例
4、docker rmi 删除镜像
二、容器命令
1、镜像下载
2、新建并启动容器
1、语法
2、参数
3、测试、启动并进入容器
4、容器启动中进入(重要)
3、查看容器
4、退出容器
5、删除容器
6、启动和停止容器的操作
三、常用其他命令
1、后台启动命令
1、命令:
2、案例:
2、查看日志
1、命令:
2、参数:
3、案例:
3、查看容器中进程信息ps
4、查看镜像的元数据
5、进入当前正在运行的容器
1、方式一(推荐):
2、方式二:
3、二者区别:
6、从容器内拷贝到主机上
1、命令:
2、案例:
8、帮助命令
四、小结:命令大全
一、镜像命令
| 语法 | 说明 |
| docker images | # 查看所有本地主机上的镜像 可以使用docker image ls代替 |
| docker search | # 搜索镜像 |
| docker pull | # 下载镜像 docker image pull |
| docker rmi | # 删除镜像 docker image rm |
| docker system df | # 查看镜像/容器/数据卷所占的空间 |
1、docker images 查看镜像
1、语法:
[root@Y ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
hello-world latest bf756fb1ae65 4 months ago 13.3kB
mysql 5.7 b84d68d0a7db 6 days ago 448MB
2、解释:
[root@Y ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE hello-world latest bf756fb1ae65 4 months ago 13.3kB mysql 5.7 b84d68d0a7db 6 days ago 448MB
2、解释:
| 参数 | 说明 |
| #REPOSITORY | # 镜像的仓库源 |
| #TAG | # 镜像的标签(版本) ---lastest 表示最新版本 |
| #IMAGE ID | # 镜像的id |
| #CREATED | # 镜像的创建时间 |
| #SIZE | # 镜像的大小 |
3、docker images --help:
| 参数 | 说明 |
| -a, --all | Show all images (default hides intermediate images) #列出所有镜像 |
| -q, --quiet | Only show numeric IDs # 只显示镜像的id |
4、案例:
| #列出所有镜像详细信息 | [root@Y ~]# docker images -a |
| #列出所有镜像的id | [root@Y ~]# docker images -aq D5f28a0bb0d0 F19c56ce92a8 1b6b1fe7261e 1b6b1fe7261e |
2、docker search 搜索镜像
1、语法:
[root@Y ~]# docker search mysql
2、解释:
[root@Y ~]# docker search mysql
2、解释:
| 参数 | 说明 |
| # --filter=STARS=3000 | #过滤,搜索出来的镜像收藏STARS数量大于3000的 |
3、docker search --help:
| 参数 | 说明 |
| -f, --filter filter | Filter output based on conditions provided |
| --format string | Pretty-print search using a Go template |
| --limit int | Max number of search results (default 25) |
| --no-trunc | Don't truncate output |
4、案例:
[root@Y ~]# docker search mysql --filter=STARS=3000
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
mysql MySQL IS ... 9520 [OK]
mariadb MariaDB IS ... 3456 [OK]
3、docker pull 下载镜像
1、语法:
# 下载镜像 docker pull 镜像名[:tag版本]
[root@Y ~]# docker pull tomcat:8
2、案例
[root@Y ~]# docker pull tomcat
8: pulling from library/tomcat # 如果不写tag,默认就是latest
90fe46dd8199: Already exists # 分层下载: docker image 的核心 联合文件系统
35a4f1977689: Already exists
bbc37f14aded: Already exists
74e27dc593d4: Already exists
93a01fbfad7f: Already exists
1478df405869: Pull complete
64f0dd11682b: Pull complete
68ff4e050d11: Pull complete
f576086003cf: Pull complete
3b72593ce10e: Pull complete
Digest: sha256:0c6234e7ec9d10ab32c06423ab829b32e3183ba5bf2620ee66de866df # 签名防伪
Status: Downloaded newer image for tomcat:8
docker.io/library/tomcat:8 #真实地址
# 等价
docker pull tomcat:8 = docker pull docker.io/library/tomcat:8
4、docker rmi 删除镜像
1、语法:
# 下载镜像 docker pull 镜像名[:tag版本]
[root@Y ~]# docker pull tomcat:8
2、案例
[root@Y ~]# docker pull tomcat
8: pulling from library/tomcat # 如果不写tag,默认就是latest
90fe46dd8199: Already exists # 分层下载: docker image 的核心 联合文件系统
35a4f1977689: Already exists
bbc37f14aded: Already exists
74e27dc593d4: Already exists
93a01fbfad7f: Already exists
1478df405869: Pull complete
64f0dd11682b: Pull complete
68ff4e050d11: Pull complete
f576086003cf: Pull complete
3b72593ce10e: Pull complete
Digest: sha256:0c6234e7ec9d10ab32c06423ab829b32e3183ba5bf2620ee66de866df # 签名防伪
Status: Downloaded newer image for tomcat:8
docker.io/library/tomcat:8 #真实地址
# 等价
docker pull tomcat:8 = docker pull docker.io/library/tomcat:8
4、docker rmi 删除镜像
[root@Y ~]# docker pull tomcat 8: pulling from library/tomcat # 如果不写tag,默认就是latest 90fe46dd8199: Already exists # 分层下载: docker image 的核心 联合文件系统 35a4f1977689: Already exists bbc37f14aded: Already exists 74e27dc593d4: Already exists 93a01fbfad7f: Already exists 1478df405869: Pull complete 64f0dd11682b: Pull complete 68ff4e050d11: Pull complete f576086003cf: Pull complete 3b72593ce10e: Pull complete Digest: sha256:0c6234e7ec9d10ab32c06423ab829b32e3183ba5bf2620ee66de866df # 签名防伪 Status: Downloaded newer image for tomcat:8 docker.io/library/tomcat:8 #真实地址 # 等价 docker pull tomcat:8 = docker pull docker.io/library/tomcat:8
4、docker rmi 删除镜像
| 语法 | 案例 |
| # 删除指定id的镜像 docker rmi -f 镜像id | [root@Y ~]# docker rmi -f f19c56ce92a8 |
| # 删除全部的镜像 docker rmi -f $(docker images -aq) | [root@Y ~]# docker stop $(docker ps -a -q) |
二、容器命令
说明:我们有了镜像才可以创建容器,Linux,下载centos镜像来学习
| 语法 | 说明 |
| docker pull centos | # docker中下载centos |
| docker run 镜像id | # 新建容器并启动 |
| docker ps | # 列出所有运行的容器和docker container list相同 |
| docker rm 容器id | # 删除指定容器 |
| docker start 容器id | # 启动容器 |
| docker restart 容器id | # 重启容器 |
| docker stop 容器id | # 停止当前正在运行的容器 |
| docker kill 容器id | # 强制停止当前容器 |
1、镜像下载
docker pull centos
2、新建并启动容器
1、语法
docker run [可选参数] image | docker container run [可选参数] image
2、参数
docker run [可选参数] image | docker container run [可选参数] image
2、参数
| 参数 | 说明 |
| --name="Name" | # 容器名字 tomcat01 tomcat02 用来区分容器 |
| -d | # 后台方式运行 |
| -it | # 使用交互方式运行,进入容器查看内容 |
| -p | # 指定容器的端口 -p 8080(宿主机):8080(容器) -p ip:主机端口:容器端口 -p 主机端口:容器端口(常用) -p 容器端口 容器端口 |
| -P(大写) | # 随机指定端口 |
3、测试、启动并进入容器
[root@Y ~]# docker run -it centos /bin/bash # run it centos启动新建一个centos容器,/bin/bash给一个默认控制台
[root@241b5abce65e /]# ls
bin dev etc home lib lib64 lost+found media mnt opt proc root run sbin srv sys tmp usr var
[root@241b5abce65e /]# exit # 从容器退回主机
Exit
4、容器启动中进入(重要)
[root@iZwz9fwomx3lwtrau6ixxfZ /]# docker exec -it mysql bash # 进入mysql(容器名)容器
root@e537a9efecc8:/# ls
bin boot dev docker-entrypoint-initdb.d entrypoint.sh etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
root@e537a9efecc8:/# exit # 从容器退回主机
Exit
3、查看容器
| 语法 | 说明 |
| docker ps | # 列出当前正在运行的容器 |
| -a, --all | # 列出当前正在运行的容器 + 带出历史运行过的容器 |
| -l | # 列出最近启动的容器 |
| -n=?, --last int | # 列出最近创建的?个容器 ?为1则只列出最近创建的一个容器,为2则列出2个 |
| -q, --quiet | # 只列出容器的编号 |
4、退出容器
| 语法 | 说明 |
| exit | # 容器直接退出 |
| ctrl +P +Q | # 容器不停止退出 |
exit直接退出
Ctrl+P+Q不停止容器退出
5、删除容器
| 语法 | 说明 |
| docker rm 容器id | # 删除指定的容器,不能删除正在运行的容器,如果要强制删除 rm -rf |
| docker rm -f $(docker ps -aq) | # 删除所有的容器 |
| docker ps -a -q|xargs docker rm | # 删除所有的容器 |
6、启动和停止容器的操作
停止或者强行停止容器,都可以再次启动,通过docker ps -a找到历史的id在启动即可,但是删除容器就不能再次重启
| 语法 | 说明 |
| docker start 容器id | # 启动容器 |
| docker restart 容器id | # 重启容器 |
| docker stop 容器id | # 停止当前正在运行的容器 |
| docker kill 容器id | # 强制停止当前容器 |
三、常用其他命令
1、后台启动命令
1、命令:
# 问题docker ps. 发现centos 停止了
# 常见的坑,docker容器使用后台运行,就必须要有要一个前台进程,docker发现没有应用,就会自动停止
# nginx,容器启动后,发现自己没有提供服务,就会立刻停止,就是没有程序了
# 所以服务类的程序,我们需要后台启动
docker run -d 镜像名
2、案例:
[root@Y ~]# docker run -d centos
a8f922c255859622ac45ce3a535b7a0e8253329be4756ed6e32265d2dd2fac6c
[root@iz2zeak7sgj6i7hrb2g862z ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
2、查看日志
1、命令:
docker logs -f 容器id
2、参数:
# 问题docker ps. 发现centos 停止了 # 常见的坑,docker容器使用后台运行,就必须要有要一个前台进程,docker发现没有应用,就会自动停止 # nginx,容器启动后,发现自己没有提供服务,就会立刻停止,就是没有程序了 # 所以服务类的程序,我们需要后台启动 docker run -d 镜像名
2、案例:
[root@Y ~]# docker run -d centos
a8f922c255859622ac45ce3a535b7a0e8253329be4756ed6e32265d2dd2fac6c
[root@iz2zeak7sgj6i7hrb2g862z ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
2、查看日志
1、命令:
docker logs -f 容器id
2、参数:
1、命令:
docker logs -f 容器id
2、参数:
| 参数 | 说明 |
| -tf | # 显示日志信息(一直更新) |
| --tail number | # 需要显示日志条数 |
3、案例:
docker run -d centos /bin/sh -c "while true;do echo 6666;sleep 1;done" # 模拟日志
docker logs -t --tail n 容器id # 查看n行日志 docker logs -ft 容器id # 跟着日志
3、查看容器中进程信息ps
docker top 容器id
[root@Y ~]# docker top 51ce907d72b1
UID PID PPID C STIME TTY TIME CMD
root 28107 28089 0 10:48 ? 00:00:00 /bin/sh -c while true;do echo 666;sleep 1;done
root 28503 28107 0 10:54 ? 00:00:00 /usr/bin/coreutils --coreutils-prog-shebang=sleep /usr/bin/sleep 1
4、查看镜像的元数据
docker inspect 容器id
[root@Y ~]# docker inspect 51ce907d72b1
……
docker inspect 容器id [root@Y ~]# docker inspect 51ce907d72b1 ……
5、进入当前正在运行的容器
我们通常容器都是使用后台方式运行的,需要进入容器,修改一些配置
1、方式一(推荐):
docker exec -it 容器id /bin/bash
[root@Y ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
51ce907d72b1 centos "/bin/sh -c 'while t…" 13 minutes ago Up 13 minutes pedantic_lichterman
[root@Y ~]# docker exec -it 51ce907d72b1 /bin/bash
[root@51ce907d72b1 /]#
2、方式二:
docker attach 容器id
[root@Y ~]# docker attach 51ce907d72b1
正在执行当前的代码…
docker attach 容器id [root@Y ~]# docker attach 51ce907d72b1 正在执行当前的代码…
3、二者区别:
- #docker exec # 进入当前容器后开启一个新的终端,可以在里面操作。(常用)
- #docker attach # 进入容器正在执行的终端
6、从容器内拷贝到主机上
1、命令:
docker cp 容器id:容器内路径 主机目的路径
2、案例:
# 1. 新建进入docker容器内部
[root@Y ~]# docker run -it centos /bin/bash
[root@55321bcae33d /]# ls
bin dev etc home lib lib64 lost+found media mnt opt proc root run sbin srv sys tmp usr var
# 2. 新建一个文件
[root@55321bcae33d /]# echo "java" > hello.java
[root@55321bcae33d /]# cat hello.java
hello
[root@55321bcae33d /]# exit
Exit
# 3. hello.java拷贝到home文件加下
[root@Y /]# docker cp 56a5583b25b4:/hello.java /home
[root@Y /]# cd /home
[root@Y home]# ls -l #可以看见java.java存在
total 8
-rw-r--r-- 1 root root 0 May 19 22:09 haust.java
-rw-r--r-- 1 root root 6 May 22 11:12 java.java
drwx------ 3 www www 4096 May 8 12:14 www
1、命令:
docker cp 容器id:容器内路径 主机目的路径
2、案例:
# 1. 新建进入docker容器内部
[root@Y ~]# docker run -it centos /bin/bash
[root@55321bcae33d /]# ls
bin dev etc home lib lib64 lost+found media mnt opt proc root run sbin srv sys tmp usr var
# 2. 新建一个文件
[root@55321bcae33d /]# echo "java" > hello.java
[root@55321bcae33d /]# cat hello.java
hello
[root@55321bcae33d /]# exit
Exit
# 3. hello.java拷贝到home文件加下
[root@Y /]# docker cp 56a5583b25b4:/hello.java /home
[root@Y /]# cd /home
[root@Y home]# ls -l #可以看见java.java存在
total 8
-rw-r--r-- 1 root root 0 May 19 22:09 haust.java
-rw-r--r-- 1 root root 6 May 22 11:12 java.java
drwx------ 3 www www 4096 May 8 12:14 www
# 1. 新建进入docker容器内部 [root@Y ~]# docker run -it centos /bin/bash [root@55321bcae33d /]# ls bin dev etc home lib lib64 lost+found media mnt opt proc root run sbin srv sys tmp usr var # 2. 新建一个文件 [root@55321bcae33d /]# echo "java" > hello.java [root@55321bcae33d /]# cat hello.java hello [root@55321bcae33d /]# exit Exit # 3. hello.java拷贝到home文件加下 [root@Y /]# docker cp 56a5583b25b4:/hello.java /home [root@Y /]# cd /home [root@Y home]# ls -l #可以看见java.java存在 total 8 -rw-r--r-- 1 root root 0 May 19 22:09 haust.java -rw-r--r-- 1 root root 6 May 22 11:12 java.java drwx------ 3 www www 4096 May 8 12:14 www
7、导入和导出容器
- export 导出容器的内容留作为一个tar归档文件[对应import命令]
- docker export 容器ID > 文件名.tar
- import 从tar包中的内容创建一个新的文件系统再导入为镜像[对应export]
- cat 文件名.tar | docker import - 镜像用户/镜像名:镜像版本号
8、帮助命令
| 语法 | 说明 |
| docker version/docker -v | #显示docker的版本信息。 |
| docker info | #显示docker的系统信息,包括镜像和容器的数量 |
| docker 命令 --help | #帮助命令 |
帮助文档的地址: docker build | Docker Documentation
.
四、小结:命令大全
| attach | Attach local standard input, output, and error streams to a running container # 当前shell下 attach连接指定运行的镜像 |
| build | Build an image from a Dockerfile # 通过Dockerfile定制镜像 |
| commit | Create a new image from a container's changes # 提交当前容器为新的镜像 |
| cp | Copy files/folders between a container and the local filesystem # 拷贝文件 |
| create | Create a new container # 创建一个新的容器 |
| diff | Inspect changes to files or directories on a container's filesystem # 查看docker容器的变化 |
| events | Get real time events from the server # 从服务获取容器实时时间 |
| exec | Run a command in a running container # 在运行中的容器上运行命令 |
| export | Export a container's filesystem as a tar archive # 导出容器文件系统作为一个tar归档文件[对应import] |
| history | Show the history of an image # 展示一个镜像形成历史 |
| images | List images # 列出系统当前的镜像 |
| import | Import the contents from a tarball to create a filesystem image # 从tar包中导入内容创建一个文件系统镜像 |
| info | Display system-wide information # 显示全系统信息 |
| inspect | Return low-level information on Docker objects # 查看容器详细信息 |
| kill | Kill one or more running containers # kill指定docker容器 |
| load | Load an image from a tar archive or STDIN # 从一个tar包或标准输入中加载一个镜像[对应save] |
| login | Log in to a Docker registry |
| logout | Log out from a Docker registry |
| logs | Fetch the logs of a container |
| pause | Pause all processes within one or more containers |
| port | List port mappings or a specific mapping for the container |
| ps | List containers |
| pull | Pull an image or a repository from a registry |
| push | Push an image or a repository to a registry |
| rename | Rename a container |
| restart | Restart one or more containers |
| rm | Remove one or more containers |
| rmi | Remove one or more images |
| run | Run a command in a new container |
| save | Save one or more images to a tar archive (streamed to STDOUT by default) |
| search | Search the Docker Hub for images |
| start | Start one or more stopped containers |
| stats | Display a live stream of container(s) resource usage statistics |
| stop | Stop one or more running containers |
| tag | Create a tag TARGET_IMAGE that refers to SOURCE_IMAGE |
| top | Display the running processes of a container |
| unpause | Unpause all processes within one or more containers |
| update | Update configuration of one or more containers |
| version | Show the Docker version information |
| wait | Block until one or more containers stop, then print their exit codes |



