06-docker 容器管理命令
1.docker镜像查找
# 查找nginx镜像,默认是 [root@docker03 ~]# docker search nginx NAME DESCRIPTION STARS OFFICIAL AUTOMATED nginx Official build of Nginx. 8168 [OK] jwilder/nginx-proxy Automated Nginx reverse proxy for docker con… 1296 [OK] richarvey/nginx-php-fpm Container running Nginx + PHP-FPM capable of… 530 [OK] jrcs/letsencrypt-nginx-proxy-companion LetsEncrypt container to use with nginx as p… 331 [OK] ...... [root@docker03 ~]# docker pull nginx
2.获取镜像,对于 Docker Hub,如果不给出用户名,则默认为 library ,也就是官方镜像
# 命令格式 docker pull [选项] [Docker Registry 地址[:端口号]/]仓库名[:标签] [root@docker03 ~]# docker pull nginx Using default tag: latest latest: Pulling from library/nginx 2a72cbf407d6: Pull complete eccc107d7abd: Pull complete 76aa3935d77c: Pull complete Digest: sha256:f6e250eaa36af608af9ed1e4751f063f0ca0f5310b1a5d3ad9583047256f37f6 Status: Downloaded newer image for nginx:latest
3.运行nginx容器的2种方法
# 运行容器
[root@docker03 ~]# docker run -itd nginx bash
00fcd7530bd0eb74ce12dc0b91cd807db0e15a90d230d6855c8a9f44a726b82a
# 容器运行命令参数
-i 交换式操作
-t 终端
-d 后台运行
--rm 容器退出后随之将其删除
bash 运行容器后执行的命令
# 查看运行的容器
[root@docker03 ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
00fcd7530bd0 nginx "bash" 8 seconds ago Up 7 seconds 80/tcp eloquent_vaughan
# 删除容器
[root@docker03 ~]# docker rm -f 00fcd7530bd0
00fcd7530bd0
# 进入容器,查询容器ID,然后根据容器ID进入
[root@docker03 ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
19c712af2c18 nginx "bash" 10 seconds ago Up 8 seconds 80/tcp inspiring_mirzakhani
#==================================================
# 进入容器的2种方法,1是container id 2是pid
# 第1种
[root@docker03 ~]# docker exec -it 19c712af2c18 bash
root@19c712af2c18:/#
[root@docker01 ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
f3bbb1cc5a44 centos "/bin/bash" 21 minutes ago Up 21 minutes mydocker
# 停止容器
[root@docker01 ~]# docker stop mydocker
mydocker
# 启动容器
[root@docker01 ~]# docker start mydocker
mydocker
[root@docker01 ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
f3bbb1cc5a44 centos "/bin/bash" 22 minutes ago Up 2 seconds mydocker
# 第2种
# 获取指定容器的PID
[root@docker01 ~]# docker inspect --format "{{.State.Pid}}" mydocker
12883
# 根据PID进去指定容器
[root@docker01 ~]# nsenter --target 12883 --mount --uts --ipc --net --pid
[root@f3bbb1cc5a44 /]# ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.0 11824 1704 pts/0 Ss+ 04:31 0:00 /bin/bash
root 13 0.0 0.1 15256 2024 ? S 04:33 0:00 -bash
root 27 0.0 0.0 55144 1844 ? R+ 04:33 0:00 ps aux
# 退出容器依然不会停止
[root@f3bbb1cc5a44 /]# exit
logout
[root@docker01 ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
f3bbb1cc5a44 centos "/bin/bash" 24 minutes ago Up About a minute
4.脚本进去容器
[root@docker01 ~]# cat docker_in.sh
#!/bin/bash
docker_in(){
NAME=$1
PID=$(docker inspect --format "{{.State.Pid}}" $1)
nsenter --target $PID --mount --uts --ipc --net --pid
}
docker_in $1
[root@docker01 ~]# ./docker_in.sh mydocker
5.显示容器镜像
# 含镜像ID和仓库名
[root@docker03 ~]# docker image ls --format "{{.ID}}: {{.Repository}}"
73acd1f0cfad: nginx
2d194b392dd1: centos
f2a91732366c: hello-world
# 以表格等距显示,并且有标题行
[root@docker03 ~]# docker image ls --format "table {{.ID}}\t{{.Repository}}\t{{.Tag}}"
IMAGE ID REPOSITORY TAG
73acd1f0cfad nginx latest
2d194b392dd1 centos latest
f2a91732366c hello-world latest
5.删除本地镜像
# 命令格式 docker image rm [选项] <镜像1> [<镜像2> ...] [root@docker03 ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE <none> <none> 73acd1f0cfad 6 days ago 109MB centos latest 2d194b392dd1 2 weeks ago 195MB hello-world latest f2a91732366c 3 months ago 1.85kB [root@docker03 ~]# docker rmi 2d194b392dd1 Untagged: centos:latest Deleted: sha256:2d194b392dd16955847a14f969b2dd319251471ffa6356be6d8f16c5bf53db9b Deleted: sha256:b03095563b7956c62ae5a6d20e5959a950e3b1a96d4404c00b7da7393847494a

浙公网安备 33010602011771号