镜像相关
查看本地镜像
docker images
➜ ~ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
harbor.shopeemobile.com/spex/spgen-compiler v1.2.0 decac2760cd6 5 months ago 2.22GB
wurstmeister/kafka latest c3b059ede60e 11 months ago 507MB
alpine/git latest b8f176fa3f0d 12 months ago 25.1MB
harbor.shopeemobile.com/spex/spgen-compiler v1.0.0 b10415992263 12 months ago 2.24GB
harbor.shopeemobile.com/spex/peg-compiler 3.2 72e4e3b5a87c 14 months ago 2.25GB
wurstmeister/zookeeper latest 3f43f72cb283 3 years ago 510MB
获取镜像
docker pull <镜像ID>
➜ ~ docker pull ubuntu:18.04
18.04: Pulling from library/ubuntu
40dd5be53814: Pull complete
Digest: sha256:d21b6ba9e19feffa328cb3864316e6918e30acfd55e285b5d3df1d8ca3c7fd3f
Status: Downloaded newer image for ubuntu:18.04
docker.io/library/ubuntu:18.04
删除镜像
docker rmi <镜像ID>
删除镜像前必须先停止并删除容器
容器使用
从镜像启动容器
docker run -it <镜像ID> /bin/bash
➜ ~ docker run -it ubuntu:18.04 /bin/bash
root@08a43713700e:/#
-t:表示终端,让docker分配一个伪终端并绑定到容器的标准输入上,
-i:表示交互式操作,让容器的标准输入保持打开
/bin/bash:放在镜像后的是命令
当利用docker run来创建容器是,docker后台运行的操作包括
- 检查本地是否存在指定的镜像,不存在就从registry下载
- 利用镜像创建并启动一个容器
- 分配一个文件系统,并在只读的镜像外面挂载一层可读写层
- 从宿主主机配置的网桥接口中桥接一个虚拟接口到容器中去
- 从地址池配置一个ip地址给容器
- 执行用户指定的应用程序
- 执行完毕后容器被终止
-d: 后台运行。docker run -itd <镜像ID> /bin/bash
查看所有的容器
docker ps -a
➜ ~ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9cca68cc46ae wurstmeister/kafka "start-kafka.sh" 11 months ago Exited (143) 11 months ago kafka
bcb549cd5ebd wurstmeister/zookeeper "/bin/sh -c '/usr/sb…" 11 months ago Exited (137) 11 months ago zookeeper
aa9e6335f5f5 alpine/git "git clone https://g…" 12 months ago Exited (0) 12 months ago repo
启动/停止/重启容器
docker start/stop/restart <容器ID>
删除容器
docker rm <容器ID>
进入容器
在使用-d参数时,容器启动后会进入后台。此时想要进入容器可以通过docker attach或docker exec命令。推荐使用后者,因为使用此命令退出终端时不会导致容器的停止。
docker exec -it <容器ID> /bin/bash
➜ ~ docker exec -it e3e0f49789c6 /bin/bash
root@e3e0f49789c6:/# exit
exit
➜ ~ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e3e0f49789c6 ubuntu:18.04 "/bin/bash" 11 minutes ago Up 11 minutes quizzical_lederberg
容器导出和导入
导出容器快照到本地文件:docker export <容器ID> > ubuntu.tar
从容器快照文件导入为镜像:docker import <文件名> <repository:<tag>>
docker export e3e0f49789c6 > ubuntu.tar
docker import ubuntu.tar test/ubuntu:v1.0
MacOS docker desktop平替 colima
brew install colima
colima start
colima stop