文章目录
一. 常用命令
1.查看docker版本信息
$ docker version
$ docker info # 包含镜像和容器数量
2.查看本地所有镜像
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest 605c77e624dd 6 months ago 141MB
ubuntu latest ba6acccedd29 9 months ago 72.8MB
alpine/git latest 612b988140be 9 months ago 27.4MB
continuumio/miniconda3 latest 67414e5844b6 11 months ago 391MB
kibana 7.6.2 f70986bc5191 2 years ago 1.01GB
elasticsearch 7.6.2 f29a1ee41030 2 years ago 791MB
3.搜索镜像
$ docker search 关键词
$ docker search kibana
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
kibana Kibana gives shape to any kind of data — str… 2434 [OK]
amazon/opendistro-for-elasticsearch-kibana The Docker image for Open Distro Kibana 60
elastic/kibana The Kibana docker images maintained by Elast… 37
bitnami/kibana Bitnami Docker Image for Kibana! 23 [OK]
blacktop/kibana Alpine Linux based Kibana Docker Image 12 [OK]
monsantoco/kibana Kibana web UI based on Alpine Linux (~65 MB). 3 [OK]
4.拉取镜像
$ docker pull 镜像名:tag
$ docker pull mysql:5.7
$ docker pull nginx:latest
5.查看某命令的帮助文档
$ docker 命令 --help
$ docker ps --help
6.查看容器
$ docker ps # 显示当前运行的容器
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
f05094804d58 ubuntu "/bin/bash" 14 minutes ago Up 12 minutes ubuntu-test
$ docker ps -a # 显示所有容器
如果ps展示的每个容器信息过长,导致在终端中每条容器的信息多行显示,可用如下命令解决
# 在终端中每行只展示一个容器的信息,并通过键盘方向键左右查看
$ docker ps | less -S
$ docker ps -a | less -S
# 查看完后按q退出
7.删除镜像和删除容器
# 删除镜像(前提:当前环境镜像没有已创建的容器)
$ docker rmi 镜像名
$ docker rmi bitnami/jupyter-base-notebook
# 删除容器
$ docker rm 容器id (id前3个字母即可)
$ docker rm 40b
# 删除全部容器
$ docker rm -f $(docker ps -aq) #全部容器删除
8.停止容器
$ docker stop 容器id
$ docker stop 40b
$ docker stop $(docker ps -a -q) # 停止所有容器
$ docker kill 容器id # 强制停止容器
$ docker kill 40b
9.启动容器
- 启动容器,指定端口:
- –name nginx-test:容器名称
- -p 8080:80: 端口进行映射,将本地 8080 端口映射到容器内部的 80 端口
- -d nginx: 设置容器在在后台一直运行
$ docker run --name 自定义名字 -p 8080:80 -d 镜像名
$ docker run --name nginx-test -p 8080:80 -d nginx
- 启动容器并以命令行模式进入容器从而进行相关命令操作:
$ docker run -it 镜像名 /bin/bash
$ docker run -it ubuntu /bin/bash
root@d0d010f3c360:/#
# 输出exit退出容器后,容器也会停止
- 重启容器:
$ docker restart 容器id
$ docker restart 1e5
-
启动一个容器并保持后台运行:
-
-d
后台运行 -
-i
交互式操作 -
-t
终端
-
$ docker run -itd --name 自定义容器名字 镜像名
$ docker run -itd --name myubuntu ubuntu
或者
$ docker run -itd --name ubuntu-test ubuntu /bin/bash
a5ea38b79ecb1b16622fe6d38c9c29f766a51e77106f0e5cc365fa1d1c229828
10.进入容器
在使用 -d 参数时,容器启动后会进入后台。此时想要进入容器,可以通过以下指令进入:
- docker attach
- docker exec:推荐使用 docker exec 命令,因为此命令会退出容器终端,但不会导致容器的停止。
- docker attach
$ docker attach 容器id
$ docker attach f05
root@f05094804d58:/#
# 输出exec退出容器 会停止容器运行
- docker exec
$ docker exec -it 容器id bash
$ docker exec -it f05 bash
root@f05094804d58:/#
# 输出exec退出容器 且不会停止容器运行
11.退出容器
exit 直接退出并结束
ctrl+p+q 让容器在后台运行,不停止并且退出
12.查看容器中的进程信息
$ docker top 容器id
$ docker top f05
UID PID PPID C STIME TTY TIME CMD
root 2205 2178 0 15:55 ? 00:00:00 /bin/bash
13.拷贝(主机->容器)
$ docker cp 要拷贝的文件路径 容器名(或id):要拷贝到容器里面对应的路径
$ docker cp /Users/wzp/a.txt f05:/
14.拷贝(容器->主机)
$ docker cp 容器名(或id):要拷贝到容器里面对应的路径 要拷贝的文件路径
$ docker cp f05:/a.txt /Users/wzp
15.查看日志
$ docker logs -tf --tail 数字 容器id
$ docker logs -tf --tail 3 031
- -t 显示时间戳
- -f 跟踪日志输出
- –tail 数字 显示最后多少条
二、容器的保存和发布
1.容器提交到镜像commit
$ docker commit 容器id name
$ docker commit 9d8befd147xx myubuntutest
sha256:8df1f39ac6b8ea85fa4816042c64bbc79f1cc36249d50044afdc9c798adxxxxxxx
提交完毕后,用docker images查看
2.镜像保存save
将上一步commit
的镜像进行保存
$ docker save -o 路径及自定义名字.tar 镜像名
$ docker save -o image_save_test.tar myubuntutest # 保存到当前路径
3.镜像加载load
将上面的步骤中所涉及的容器及镜像删除,用tar文件恢复
$ docker load -i 路径/名字.tar
$ docker load -i image_save_test.tar
用docker images
查看
REPOSITORY TAG IMAGE ID CREATED SIZE
myubuntutest latest 8df1f39ac6b8 10 minutes ago 178MB
在用run命令即可恢复之前的容器
三、容器挂载(数据卷)
$ docker run -it -v 主机目录:容器内目录
$ docker run -itd -v /home/helloworld:/home myubuntutest bash
设置后两个文件夹中的内容将互相同步
使用docker inspect
容器id可查看其中的挂载信息
四、容器启动run常用参数
$ docker run [参数] image
- -d: 后台运行容器
- -i 以交互模式运行容器,通常与-t同时使用
- -t 进入容器终端
- –volume 或 -v: 绑定一个数据卷
- –net=“bridge”: 指定容器的网络连接类型,支持bridge/host/none/container四种类型
- –dns 8.8.8.8: 指定容器使用的DNS服务器,默认和主机一致
- -p: 指定端口映射,格式为:主机端口:容器端口
- –name=“自定义名”: 为容器命名
- –link=[]: 添加链接到另一个容器
- –expose=[]: 开放一个端口或一组端口
其他
1.在ubuntu容器中使用vim
1 进入容器
$ docker exec -it 容器id bash
2 在容器内更新apt-get
$ apt-get update
3 下载vim
$ apt-get install vim