docker第二期 常用命令

以下之列出常用命令,具体的命令可以使用 --help 查看。或者去网站 命令大全 查看

镜像命令

查找所需镜像

$ sudo docker search php
NAME                           DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
php                            While designed for web development, the PHP …   6276      [OK]       
phpmyadmin/phpmyadmin          A web interface for MySQL and MariaDB.          1140                 [OK]
adminer                        Database management in a single PHP file.       636       [OK]       
phpmyadmin                     phpMyAdmin - A web interface for MySQL and M…   380       [OK]       
webdevops/php-nginx            Nginx with PHP-FPM                              212                  [OK]
php-zendserver                 Zend Server - the integrated PHP application…   200       [OK]  

拉取镜像

> $ sudo docker pull php
Using default tag: latest
latest: Pulling from library/php
eff15d958d66: Pull complete 
933427dc39f7: Pull complete 
35bb08dc7ee2: Pull complete 
58a3f26800d7: Pull complete 
1dc176a6a0e0: Pull complete 
d94706221d1b: Pull complete 
1b6af332d4c1: Pull complete 
daae188bbaa3: Pull complete 
99734ab788a5: Pull complete 
Digest: sha256:5c1eabac56c89b7c5397b7de706b8532ed115af6bedf6efe13640f695afbc9ef
Status: Downloaded newer image for php:latest
docker.io/library/php:latest

当不指定tag时 拉取下来的就是最新的,当然也可以向下面这样指定的

> $ sudo docker pull php:8.0.13
8.0.13: Pulling from library/php
Digest: sha256:5c1eabac56c89b7c5397b7de706b8532ed115af6bedf6efe13640f695afbc9ef
Status: Downloaded newer image for php:8.0.13
docker.io/library/php:8.0.13

查看镜像

我们可以看到刚刚pull下来的两个镜像都有了。

lighthouse@VM-8-11-ubuntu:~$ sudo docker images
REPOSITORY   TAG       IMAGE ID       CREATED      SIZE
php          8.0.13    01ce2cfc916a   4 days ago   476MB
php          latest    01ce2cfc916a   4 days ago   476MB

删除镜像

如果我们需要删除第一个拉取下来的镜像,我直接执行:

lighthouse@VM-8-11-ubuntu:~$ sudo docker rmi -f php:latest
Untagged: php:latest
lighthouse@VM-8-11-ubuntu:~$ sudo docker images
REPOSITORY   TAG       IMAGE ID       CREATED      SIZE
php          8.0.13    01ce2cfc916a   4 days ago   476MB

容器命令

运行容器

lighthouse@VM-8-11-ubuntu:~$ sudo docker run --name myphp php:latest
Unable to find image 'php:latest' locally
latest: Pulling from library/php
Digest: sha256:5c1eabac56c89b7c5397b7de706b8532ed115af6bedf6efe13640f695afbc9ef
Status: Downloaded newer image for php:latest
47afd641e9e50245056414a44d6bbe001502ba527f9d549138723dfdc85fadaa
参数说明:
1. -d: 后台运行容器,并返回容器ID;
2. --name="myphp": 为容器指定一个名称;
3. -t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
4.  ... 还有很多参数可以参考文档

后台启动容器

root@VM-8-11-ubuntu:/home/lighthouse# docker run -d centos
f2a50995b32a3ec03fe828e44ee052da518d09a092413a0919634b802fa2520e
root@VM-8-11-ubuntu:/home/lighthouse# docker ps -a
CONTAINER ID   IMAGE     COMMAND       CREATED         STATUS                     PORTS     NAMES
f2a50995b32a   centos    "/bin/bash"   6 seconds ago   Exited (0) 5 seconds ago             affectionate_satoshi

# 问题docker ps,发现centos 停止了
# 这里有个常见的问题,docker容器使用后台运行,必须要有一个前台进程,docker发现没有应用会自动停止。
# php容器启动后,发现自己没有踢动服务,就会立刻停止,就表示没有程序了。

查看容器

我们可以看到运行的容器是退出的也就是不在后台运行了

lighthouse@VM-8-11-ubuntu:~$ sudo docker ps -a
CONTAINER ID   IMAGE        COMMAND                  CREATED          STATUS                      PO
RTS     NAMES
47afd641e9e5   php:latest   "docker-php-entrypoi…"   12 minutes ago   Exited (0) 12 minutes ago     
        myphp

// 查看正在运行的容器
lighthouse@VM-8-11-ubuntu:~$ sudo docker ps
CONTAINER ID   IMAGE          COMMAND                  CREATED       STATUS       PORTS     NAMES
45678eaa1fb6   nginx:latest   "/docker-entrypoint.…"   2 hours ago   Up 2 hours   80/tcp    mynginx

在这我们发现明明 -d 为何还是退出了,这是因为没有前台运行进程,如果想要让它在后台运行也是有办法的。
docker run -it 就可以了

lighthouse@VM-8-11-ubuntu:~$ sudo docker run --name=myphp -d -it php:latest
5d6ed68ee6f7662d7973a92ab9cdc6ad6523e7d7b48ff50b58cf81178f585c64
lighthouse@VM-8-11-ubuntu:~$ sudo docker ps
CONTAINER ID   IMAGE        COMMAND                  CREATED         STATUS         PORTS                                                  NAMES
5d6ed68ee6f7   php:latest   "docker-php-entrypoi…"   6 seconds ago   Up 5 seconds           

查看容器的信息/元数据

lighthouse@VM-8-11-ubuntu:~$ sudo docker inspect 5d6ed68ee6f7
[
    {
        "Id": "5d6ed68ee6f7662d7973a92ab9cdc6ad6523e7d7b48ff50b58cf81178f585c64",
        "Created": "2021-11-24T09:03:13.752426576Z",
        "Path": "docker-php-entrypoint",
        "Args": [
            "php",
            "-a"
        ],
        "State": {
            "Status": "exited",
            "Running": false,
            "Paused": false,
            "Restarting": false,
            "OOMKilled": false,
            "Dead": false,
            "Pid": 0,
            "ExitCode": 0,
            "Error": "",
            "StartedAt": "2021-11-24T09:03:14.09133713Z",
            "FinishedAt": "2021-11-24T09:03:14.127123376Z"
        },
        "Image": "sha256:01ce2cfc916a6b519eda5e8fa22416e7830c1b51e644bd8647d5c24ac24fe5bd",
        "ResolvConfPath": "/var/lib/docker/containers/47afd641e9e50245056414a44d6bbe001502ba527f9d54
9138723dfdc85fadaa/resolv.conf",
        "HostnamePath": "/var/lib/docker/containers/47afd641e9e50245056414a44d6bbe001502ba527f9d5491
38723dfdc85fadaa/hostname",

容器删除

docker rm 容器id #单个删除
docker rm -f $(docker ps -aq) # 全部删除 需要root命令
docker ps -a -q | xargs docker rm # 删除所有

lighthouse@VM-8-11-ubuntu:~$ sudo docker rm 47afd641e9e5
47afd641e9e5
lighthouse@VM-8-11-ubuntu:~$ sudo docker ps -a
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES

// 删除所有需要root权限 
lighthouse@VM-8-11-ubuntu:~$ sudo docker rm -f $(docker ps -aq)
Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.
sock: Get "http://%2Fvar%2Frun%2Fdocker.sock/v1.24/containers/json?all=1": dial unix /var/run/docker
.sock: connect: permission denied
"docker rm" requires at least 1 argument.
lighthouse@VM-8-11-ubuntu:~$ su root
Password: 
root@VM-8-11-ubuntu:/home/lighthouse# docker ps -a
CONTAINER ID   IMAGE          COMMAND                  CREATED          STATUS                      
PORTS     NAMES
03332f38e0ba   php:latest     "docker-php-entrypoi…"   11 minutes ago   Exited (0) 11 minutes ago   
          myphp
1fecd247f3fd   nginx:latest   "/docker-entrypoint.…"   2 hours ago      Up 2 hours                  
80/tcp    mynginx
root@VM-8-11-ubuntu:/home/lighthouse# docker rm -f $(docker ps -aq)
03332f38e0ba
45678eaa1fb6

停止容器

docker stop 容器id
root@VM-8-11-ubuntu:/home/lighthouse# docker stop 1fecd247f3fd
1fecd247f3fd

启动容器

docker start 容器id

root@VM-8-11-ubuntu:/home/lighthouse# docker start 1fecd247f3fd
1fecd247f3fd

进入容器

docker exec [OPTIONS] CONTAINER COMMAND [ARG...]

OPTIONS说明:

-d: 分离模式:在后台运行
-i: 即使没有附加也保持STDIN打开
-t: 分配一个伪终端

root@VM-8-11-ubuntu:/home/lighthouse# docker exec -it mynginx /bin/sh
#

也可以用容器id进入

root@VM-8-11-ubuntu:/home/lighthouse# docker exec -it 1fecd247f3fd /bin/sh
# 
docker attach 容器名/容器ID 连接正在运行中的容器

退出容器

  • exit
  • Ctrl+P+Q 保持后台运行 不断开
  • ctrl+D

拓展命令

  • docker stop $(docker ps -aq) && docker rm $(docker ps -aq) // 停止所有容器 并删除所有容器
  • docker ps -a -q | docker rm /// 删除所有停止的容器
  • docker ps -a -q | xargs docker rm // 删除所有停止的容器
  • docker images -a -q| xargs docker rmi // 删除所有镜像
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值