Docker 常用命令

目录

1. 启动 Docker
2. 获取 Image 文件
3. 管理 Image 文件
4. 创建 Container
5. 连接 Container
6. 操作 Container
7. 创建 Volume
8. 添加 Docker 用户组
9. 快捷键
10. 其它

1. 启动 Docker

$ docker version(或 info)      ## 查看 Docker 版本信息
$ systemctl start docker        ## 启动 Docker
$ systemctl restart docker      ## 重启 Docker (修改防火墙,开放相应端口后,需要重启 Docker)

返回目录

2. 获取 Image 文件

$ docker search --filter=starts=50 nginx                                ## 搜索镜像 Nginx 标星至少为 50
$ docker pull nginx:latest                                              ## 获取最新版 nginx(最新版一般不稳定)
$ docker pull index.tenxcloud.com/docker_library/node:latest	        ## 使用时速云镜像下载
$ docker tag index.tenxcloud.com/docker_library/node:latest node:latest	## 更新镜像标签与官方标签保持一致

返回目录

3. 管理 Image 文件

$ docker images                                 ## 查看本地 image 文件
$ docker image ls                               ## 查看本地 image 文件
$ docker image rm [imageName]                   ## 删除 image 文件
$ docker rmi [imageName]	                ## 删除 image 文件(同上)
$ docker image prune -f		                ## 强制删除遗留的临时镜像,及一些没有被使用过的镜像
$ docker save -o ubt_18.04.tar ubt:18.04	## 导出本地的 ubt:18.04 镜像为 ubt_18.04.tar
$ docker load -i ubt_18.04.tar			## 导入镜像文件
$ docker tag test:latest user/test:latest	## 添加新标签 user/test:latest
$ docker push user/test:latest			## 上传镜像到 Docker Hub 官方仓库(需要登录)

返回目录

4. 创建 Container

$ docker run --name nginx-test -p 8080:80 -d -it nginx:latest /bin/bash
## --name 容器名称为 nginx-test
## -p  8080:80 本地 8080 端口映射到容器的 80 端口(若不指定则随机分配)
## -d  nginx 设置容器在后台一直运行
## -rm 关闭容器后自动删除容器
## -t  分配一个伪终端绑定到容器的标准输入上
## -i  使容器的标准输入保持打开
## -v  /home/usr/bob:/data 在容器中设置挂载点 /data(容器中一个目录), 并与主机目录 /home/usr/bob 关联;

返回目录

5. 连接 Container

$ docker run --name web -d -p 80:80 --link db:db nginx		
## --link <容器名称>:<别名>
## 从容器内部连接另一个容器:mongodb://db:27017/example

$ docker port mysql		## 查看容器 mysql 端口映射情况

返回目录

6. 操作 Container

Container 启动、停止:

$ docker start [containerID]   	            ## 启动已经生成、停止运行的容器(可以仅使用部分 ID)
$ docker stop [containerID]   	            ## 终止容器运行(自行收尾清理工作)
$ docker pause [containerID] 		    ## 暂停容器中所有进程
$ docker unpause [containerID] 	      	    ## 恢复容器中所有进程
$ docker kill [containID]                   ## 手动终止不会自动终止的容器
$ docker rm [containerID]                   ## 删除容器文件(终止运行的容器文件,依然会占据硬盘空间,可以将其删除)
$ docker rm -l [containerID] 		    ## 删除容器的连接,但保留容器
$ docker rm -v [containerID] 		    ## 删除容器挂载的数据卷

Container 进入:

$ docker attach [containerID]			    	## 进入一个正在运行的容器
$ docker exec -it [containerID] /bin/sh (推荐) 	## 进入一个正在运行的容器(run 时未使用 -it 参数)
$ docker exec -it node-test env LANG=C.UTF-8 /bin/sh	## 添加中文支持 env LANG=C.UTF-8
$ docker exec hello echo "Hello World"	   		## 在容器外运行 hello 容器内的命令(常用于执行 apt-get、yum 安装包或运行各种守护进程)

Container 信息查看:

$ docker ps				    ## 查看正在运行的容器
$ docker ps -a -s			    ## 查看所有容器 -a 总文件大小 -s
$ docker inspect test			    ## 查看容器详情
$ docker logs [op][containerID]		    ## 查看容器的输出(run 时未使用 -it 参数)
$ docker top test			    ## 查看容器中的进程信息
$ docker stats test			    ## 查看容器中的统计信息(CPU、内存、存储、网络等使用情况)
$ docker port mysql			    ## 查看容器 mysql 端口映射情况

Container 导出和导入:

容器快照与镜像的区别:容器快照将丢弃所有历史记录和元数据信息,镜像文件保存完整记录,体积更大。

$ docker expot -o mysql-`date +%Y%m%d`.tar a404c6c174a2	## 将 id 为 a404c6c174a2 的容器按日期保存为 tar 文件。
$ docker import test_for_run.tar - test/ubuntu:v1.0	## 将 test_for_run.tar 文件导入到系统中		

Container 其他命令:

$ docker cp [containID]:[/path/to/file] .   ## 从正在运行的容器中,拷贝文件到本机 . 为当前目录
$ docker cp data test:/tmp/		    ## 将本地路径的 data 复制到 test 容器的 /tmp/ 路径下

返回目录

7. 创建 Volume

Volume 创建

$ docker volume create -d local test	    ## 普通数据卷,映射到主机 /var/lib/docker/volumes 路径下

Volume 绑定(推荐)

使用 training/webapp 镜像创建一个 Web 容器,并创建一个数据卷挂载到容器的 /opt/webapp 目录:
注意:本地路径必须使用绝对路径,容器内路径可以为相对路径。

$ docker run -d -P --name web --mount type=bind,source=/webapp,destination=/opt/webapp training/webapp python app.py

返回目录

8. 添加 Docker 用户组

## 使当前用户也可以使用 Docker
$ sudo groupadd docker             ## 添加 docker 用户组
$ sudo gpasswd -a $USER docker     ## 将登陆用户加入到 docker 用户组中
$ newgrp docker                    ## 更新用户组
$ docker ps                        ## 测试 docker 命令是否可以使用 sudo 正常使用

返回目录

9. 快捷键

Ctrl + c                           ## 停止当前进程
Ctrl + d   exit                    ## 退出容器
Ctrl + p   Ctrl + q                ## 退出容器但不终止

返回目录

10. 其它

## docker 中不带 vim 命令,需要安装:
$ apt-get update                   ## 同步 /etc/apt/sources.list 和 /etc/apt/sources.list.d 中的源索引
$ apt-get install vim              ## 安装 vim

返回目录

posted @ 2021-09-13 16:54  xiaobo0602  阅读(55)  评论(0编辑  收藏  举报