Docker常用命令
帮助命令
# docker版本信息
$ docker version
# 显示docker系统信息
$ docker info
# 帮助命令
$ docker --help
镜像命令
查看镜像列表
$ docker images
# 可选项
-a, --all # 所有镜像
-q, --quiet # 只显示镜像id
-f, --filter # 过滤
# 参考
Options:
-a, --all Show all images (default hides intermediate images)
--digests Show digests
-f, --filter filter Filter output based on conditions provided
--format string Pretty-print images using a Go template
--no-trunc Don't truncate output
-q, --quiet Only show numeric IDs
搜索镜像
# 搜索 docker hub 镜像列表
$ docker search mysql
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
mysql MySQL is a widely used, open-source relation… 10202 [OK]
mariadb MariaDB is a community-developed fork of MyS… 3753 [OK]
# 过滤搜索
$ docker search mysql --filter=STARS=10202
下载镜像
# 默认使用最新版本
$ docker pull mysql
# 指定版本 (mysql 5.7版本)
$ docker pull mysql:5.7
删除镜像
# 删除指定容器
$ docker rmi -f 容器id 容器id2
# 删除全部容器
$ docker rmi -f ${docker images -aq}
练习容器命令
下载一个centos镜像
$ docker pull centos
启动
$ docker run [可选参数] image
# 参数选项
--name="Name" 窗口名字,区分容器
-d 后台运行
-it 使用交互方式运行,进入容器查看内容
-p 指定容器的端口 -p 8080:8080
-p 主机端口:容器端口(常用)
-p 容器端口
-p 随机指定端口
# 启动并进入容器
$ docker run -it centos /bin/bash
==
[root@VM-0-10-centos /]# docker run -it centos /bin/bash
[root@fbdd3a57cdc4 /]# ls
bin dev etc home lib lib64 lost+found media mnt opt proc root run sbin srv sys tmp usr var
==
# 退出容器
$ exit
列出所有运行的容器
$ docker ps
# 列出当前正在运行的容器,列出历史运行的容器
-a
# 显示最近创建的?个容器
-n=?
# 只显示容器id
-q
删除容器
$ docker rm 容器id
# 强制删除运行中的容器
$ docker rm -f 容器id
# 强制删除所有容器
$ docker rm -f $(docker ps -aq)
$ docker ps -a -q|xargs docker rm
启动和停止容器操作
$ docker start 容器id
$ docker restart 容器id
$ docker stop 容器id
$ docker kill 容器id # 强制停止当前容器
常用其它命令
后台启动
$ docker run -d centos
docker ps 发现centos 停止了
常见的坑:
docker容器使用后台运行,就必须要有一个前台进程,docker 发现没有应用,就会自动停止
启动一个不停止的容器
$ docker run -d centos /bin/sh -c "while true; do echo yang; sleep 1; done"
# 查看容器列表
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
d455f26b323d centos "/bin/sh -c 'while t…" 3 seconds ago Up 2 seconds hungry_lederberg
# 查看日志
$ docker logs -tf --tail 10 d455f26b323d
2020-11-25T13:53:52.900071191Z yang
2020-11-25T13:53:53.901806792Z yang
2020-11-25T13:53:54.903569271Z yang
2020-11-25T13:53:55.905309521Z yang
2020-11-25T13:53:56.907025703Z yang
2020-11-25T13:53:57.908753610Z yang
查看容器进程信息
$ docker top 容器id
UID PID PPID C STIME TTY TIME CMD
root 18210 18194 0 21:52 ? 00:00:00 /bin/sh -c while true; do echo yang; sleep 1; done
root 21049 18210 0 22:03 ? 00:00:00 /usr/bin/coreutils --coreutils-prog-shebang=sleep /usr/bin/sleep 1
查看镜像元数据
$ docker inspect 容器id

进入运行的容器
# 容器通常是后台运行,需要进入容器,修改配置等操作
# 查看运行中的容器
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
4334cea3e4c3 centos "/bin/sh -c 'while t…" 49 seconds ago Up 48 seconds admiring_joliot
# 方式一
$ docker exec -it 4334cea3e4c3 /bin/bash
# 方式二
$ docker attach -it 4334cea3e4c3 /bin/bash
# docker exec # 进入容器后开户一个新的终端
# docker attach # 进入容器正在执行的终端,不会启动新的进程
从容器内拷文件到主机
$ docker cp . .

浙公网安备 33010602011771号