Docker常用命令
Docker基本原理
- Docker是一个Client-Server结构的系统,Docker的守护进程(DockerServer中)运行在宿主机上,通过Socket从客户端访问
- DockerServer接收到Docker Client的指令,就会执行该命令
Docker为什么比虚拟机快
- Docker具有比虚拟机更少的抽象层
- Docker利用宿主机操作系统内核。虚拟机需要自己构成虚拟操作系统内核
Docker帮助命令
查看版本
查看信息
帮助命令
官方命令文档地址
https://docs.docker.com/reference/
镜像命令
docker images
查看所有本地镜像
Name, shorthand | Default | Description |
---|---|---|
--all , -a | Show all images (default hides intermediate images) | |
--digests | Show digests | |
--filter , -f | Filter output based on conditions provided | |
--format | Pretty-print images using a Go template | |
--no-trunc | Don’t truncate output | |
--quiet , -q | Only show numeric IDs |
docker images
结果列含义:
REPOSITORY
——镜像仓库源(通过该名字下载和运行)TAG
——镜像标签,版本信息IMAGE ID
——镜像IDCREATED
——镜像的创建时间SIZE
——镜像的大小
docker images -q
- 只显示镜像id
docker images -aq
- 以ID形式显示所有镜像
docker search
我们可以去Docker Hub网站搜索镜像,也可以使用
docker search
命令,搜索镜像
Name, shorthand | Default | Description |
---|---|---|
--automated | deprecated Only show automated builds | |
--filter , -f | Filter output based on conditions provided | |
--format | Pretty-print search using a Go template | |
--limit | 25 | Max number of search results |
--no-trunc | Don’t truncate output | |
--stars , -s | deprecated Only displays with at least x stars |
测试
docker search mysql
查看STAR数大于3000的镜像
docker search mysql --filter=STARS=3000
docker pull
下载镜像
Name, shorthand | Default | Description |
---|---|---|
--all-tags , -a | Download all tagged images in the repository | |
--disable-content-trust | true | Skip image verification |
--platform | experimental (daemon)API 1.32+ Set platform if server is multi-platform capable | |
--quiet , -q | Suppress verbose output |
指定版本下载
- 下载Mysql 5.7
docker pull mysql:5.7root@ubuntu:/# docker pull mysql:5.75.7: Pulling from library/mysqlafb6ec6fdc1c: Pull complete0bdc5971ba40: Pull complete97ae94a2c729: Pull completef777521d340e: Pull complete1393ff7fc871: Pull completea499b89994d9: Pull complete7ebe8eefbafe: Pull complete4eec965ae405: Pull completea531a782d709: Pull complete10e94c02b508: Pull complete799a94b968ef: Pull completeDigest: sha256:5c9fd7949bc0f076429fa2c40d0e7406e095bdb5216a923257b31972a6f3ae4fStatus: Downloaded newer image for mysql:5.7docker.io/library/mysql:5.7分层下载,Digest为摘要,docker.io为真实地址
如果此时在下载Mysql 8.0,会发现很多层是公用的,就不用下载了
docker rmi
删除镜像remove image
- 可以根据镜像名(Repository属性)删除
- 可以根据镜像ID删除
Name, shorthand | Default | Description |
---|---|---|
--force , -f | Force removal of the image | |
--no-prune | Do not delete untagged parents |
删除所有镜像
$
传递参数,查询所有镜像,递归删除docker rmi -f $(docker images -aq)删除多个镜像
docker rmi ID1 ID2 ID3
容器命令
必须有镜像才能创建容器,下载一个centos镜像来进行学习
docker run
新建并启动一个容器
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
常用参数:
--name
——给容器起个名字-d
——以后台方式运行-it
——使用交互方式运行,进入容器查看内容-p
——指定容器端口,可以设置宿主机映射
-p ip:主机端口:容器端口
-p 主机端口:容器端口
(常用)-p 容器端口
-P
——随即指定端口
测试——运行刚才下载的centos镜像
-it
——使用交互方式centos
——镜像名/bin/bash
——指定控制台docker run -it centos /bin/bash终端回显
root@ubuntu:/# docker run -it centos /bin/bash[root@a662d700eebd /]#
root@a662d700eebd
说明已经进入容器了,进入了我们刚才现在的centos操作系统
- 退出
exit
- 退出但不停止容器
快捷键
ctrl + p + q
docker ps
- 查看当前运行容器
docker ps
- 查看曾经运行过的容器
-a
docker ps -a运行后可以看到我们运行过的
hello-world
和centos
镜像
- 显示最近创建的容器
-n
- 显示最近创建的一个容器
docker ps -a -n=1
- 只显示容器编号
-q
- 显示所有容器编号
docker ps -aq
docker rm
- 删除容器
docker rm 容器Id
- 删除全部容器
docker rm -f $(docker ps -aq)使用管道符
|
删除docker ps -a -q | xargs docker rm
docker start
启动一个停止的容器
docker start 容器id重启一个容器
docker restart 容器id
docker stop
停止一个正在运行的容器
docker stop 容器id
docker kill
暴力杀死一个容器
docker kill 容器id
常用其他命令
docker run -d
*
后台启动容器
通过
docker run -d 镜像
,使用docker ps
发现后台容器停止了
警告
docker容器使用后台运行,必须要有一个前台进程,否则docker发现没有应用就会自动停止
docker logs
查看docker日志
查看最后十条10日志
-t
时间戳;-f
follow格式化docker logs -tf --tail 10 31df4ec1492a
docker top
查看容器容器中的进程信息
docker top 容器id
docker inspect
*
查看容器内部元数据
docker inspect 容器id
docker exec
*
进入一个容器,
-it
以交互模式进入;/bin/bash
指定控制台docker exec -it 容器id /bin/bash
docker attach
*
进入一个容器
docker attach 容器id /bin/bash正在执行当前的代码
docker exec
和docker attach
的区别
docker exec
——进入容器后,开启一个新终端,可以执行命令docker attach
——进入容器正在执行的终端
docker cp
从容器内拷贝文件到宿主机上
docker cp 容器id:容器内路径 目标主机路径
Docker 命令图
Mac Iterm2 配合 Docker 在当前路径生成 ubuntu 容器环境
- 在使用
zsh
shell 的情况下,使用编辑~/.zshrc
文件,添加三个函数即可