Docker常用命令

2021-03-12  本文已影响0人  overflowedstack

帮助命令

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 ./
上一篇 下一篇

猜你喜欢

热点阅读