帮助命令
docker version #查看版本信息
docker info #查看Docker系统信息,包括镜像和容器的数量
docker --help #查看所有命令
docker 命令 --help #各个命令的帮助信息
doc文档:https://docs.docker.com/reference/
镜像命令
docker images #查看所有本地主机上的镜像
~ $ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
hello-world latest d1165f221234 5 days ago 13.3 kB
~ $ docker images -aq
d1165f221234
#解释
REPOSITORY 镜像的仓库源
TAG 镜像的标签
IMAGE ID 镜像的ID
CREATED 镜像的创建时间
SIZE 镜像的大小
#可选项
Options:
-a, --all Show all images (default hides intermediate images)
-q, --quiet Only show numeric IDs
docker search #搜索镜像
~ $ docker search mysql
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
mysql MySQL is a widely used, open-source relati... 10600 [OK]
mariadb MariaDB Server is a high performing open s... 3970 [OK]
#可选项,通过收藏来过滤
~ $ docker search mysql --filter=STARS=3000
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
mysql MySQL is a widely used, open-source relati... 10600 [OK]
mariadb MariaDB Server is a high performing open s... 3970 [OK]
docker pull #下载镜像
# 下载镜像 docker pull 镜像名[:tag]
# 如果不写tag,默认就是latest
~ $ docker pull mysql
Using default tag: latest
latest: Pulling from library/mysql
45b42c59be33: Pull complete
b4f790bd91da: Pull complete
325ae51788e9: Pull complete
adcb9439d751: Pull complete
174c7fe16c78: Pull complete
698058ef136c: Pull complete
4690143a669e: Pull complete
f7599a246fd6: Pull complete
35a55bf0c196: Pull complete
790ac54f4c47: Pull complete
b0ddd5d1b543: Pull complete
1aefd67cb33d: Pull complete
Digest: sha256:7706e4c382be813b58ef514f2bdac747cd463a6866c6c81165d42a1d0e4fe947
Status: Downloaded newer image for mysql:latest
# 指定版本下载
docker rmi #删除镜像
docker rmi -f 容器id #删除指定的镜像
docker rmi -f 容器id 容器id #删除多个镜像
docker rmi -f $(docker images -qa) #删除全部镜像
容器命令
下载一个centos镜像
~ $ 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 images
REPOSITORY TAG IMAGE ID CREATED SIZE
centos latest 300e315adb2f 3 months ago 209 MB
docker run [可选参数] image
#参数说明
--name="Name" 容器名字
-d 后台方式运行
-it 使用交互方式运行,进入容器查看内容
-P 随机指定端口
-p 指定容器的端口 -p 8080:8080
-p 主机端口:容器端口
-p 容器端口
#测试,启动并进入容器
~ $ docker run -it centos /bin/bash
[root@0592aedf2ec7 /]# ls #查看容器内的centos,基础版本,很多命令是不完善的
bin dev etc home lib lib64 lost+found media mnt opt proc root run sbin srv sys tmp usr var
[root@0592aedf2ec7 /]#
#列出所有运行的容器
~ $ docker ps #列出当前正在运行的容器
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
~ $ docker ps -a #列出当前+历史运行过的容器
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
0592aedf2ec7 centos "/bin/bash" 2 minutes ago Exited (0) 18 seconds ago nervous_booth
1fed15b70d43 d1165f221234 "/hello" 22 hours ago Exited (0) 22 hours ago naughty_fermat
e659b94cf5fb d1165f221234 "/hello" 22 hours ago Exited (0) 22 hours ago infallible_haibt
~ $ docker ps -a -n=1
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
0592aedf2ec7 centos "/bin/bash" 4 minutes ago Exited (0) 2 minutes ago nervous_booth
~ $ docker ps -aq
0592aedf2ec7
1fed15b70d43
e659b94cf5fb
#退出容器
exit #直接容器停止并退出
Ctrl + P + Q #容器不停止,退出
~ $ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
~ $ docker run -it centos /bin/bash
[root@aeefe2e7c17b /]# ~ $
~ $ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
aeefe2e7c17b centos "/bin/bash" Less than a second ago Up 42 seconds gallant_kowalevski
#删除容器
docker rm 容器id #删除指定容器,不能删除正在运行的容器
docker rm -f 容器id #强制删除容器,包括正在运行的
docker rm -f $(docker ps -aq) #删除所有容器
docker ps -aq | xargs docker rm #删除所有容器
#启动和停止容器的操作
docker start 容器id #启动容器
docker restart 容器id #重启容器
docker stop 容器id #停止当前正在运行的容器
docker kill 容器id #强制停止当前容器
其他常用命令
#查看日志
#自己编写一段shell脚本,打印日志
~ $ docker run -d centos /bin/sh -c "while true;do echo 666;sleep 10;done"
d4add4c71ac2bb41b1608b2ebe6b733451c752b596af583c608c5add2ecf3362
#显示日志
~ $ docker logs -tf --tail 20 d4add4c71ac2
2021-03-11T12:45:14.781444732Z 666
#查看容器中的进程信息
~ $ docker top d4add4c71ac2
PID USER TIME COMMAND
4492 root 0:00 /bin/sh -c while true;do echo 666;sleep 10;done
4535 root 0:00 {sleep} /usr/bin/coreutils --coreutils-prog-shebang=sleep /usr/bin/sleep 10
#查看镜像元数据
~ $ docker inspect d4add4c71ac2
#进入当前正在运行的容器
#通常容器都是通过后台方式运行的,有时候需要进入容器,修改一些配置
docker exec -it 容器id bashShell #进入容器后开启一个新的终端
~ $ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
d4add4c71ac2 centos "/bin/sh -c 'while..." 7 minutes ago Up 8 minutes relaxed_thompson
6a765b106040 centos "/bin/bash" 12 minutes ago Up 13 minutes objective_franklin
~ $ docker exec -it d4add4c71ac2 /bin/bash
[root@d4add4c71ac2 /]# ps -ef
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 12:45 ? 00:00:00 /bin/sh -c while true;do echo 666;sleep 10;done
root 58 1 0 12:54 ? 00:00:00 /usr/bin/coreutils --coreutils-prog-shebang=sleep /usr/bin/sleep 10
root 59 0 0 12:54 ? 00:00:00 /bin/bash
root 72 59 0 12:54 ? 00:00:00 ps -ef
#方式二
docker attach 容器id #进入容器正在执行的终端,不会启动一个新的进程
~ $ docker attach d4add4c71ac2
正在执行当前的代码...
#从容器内拷贝文件到主机上
docker cp
[root@6a765b106040 home]# touch test.java
~ $ docker cp 6a765b106040:/home/test.java ./
网友评论