Docker 使用整理:镜像与容器操作命令
1.镜像操作命令
| 命令 | 说明 | |
| drag | 拉取镜像 搜索 | 搜索相关镜像 |
| 标签 | 重命名镜像 | |
| rmi | 删除镜像 | |
| 图像或图像ls | 显示所有镜像 build 基于基础构建镜像on Dockerfile | |
| commit | 基于现有容器构建镜像 |
1.拉取镜像
使用“docker拉取镜像名称”将远程仓库镜像拉取到本地(先检查本地是否存在,如果本地不存在再尝试)默认最新版本的镜像为从官网获取)
以busybox为例:
BusyBox是一款集合了300多个最常用的Linux命令和工具的软件。 BusyBox 包括简单的工具,如 ls、cat 和 echo,以及更大、更复杂的工具,如 grep、find、mount 和 telnet。有人称 BusyBox 为 Linux 工具中的瑞士军刀。简单来说,BusyBox就像一个大工具箱。它集成并压缩了许多Linux工具和命令,还包括自己的Linux shell。
docker pull busybox # 拉取镜像您还可以在拉取镜像之前使用 docker search 命令
docker search busybox # 搜索相关镜像2 搜索不同类型的镜像。查看镜像
使用“docker image ls”或“docker images”命令查看现有的本地镜像
docker images # 查看所有镜像
docker images | grep busybox # 查看指定镜像3.更改镜像名称
使用“docker tag 原镜像名称 新名称”命令对镜像进行重命名,例如:docker tag busybox:latest mybusybox:V1.0。重命名镜像会添加一个新镜像,相当于创建一个新镜像。具有相同 ID 的副本。
docker tag busybox:latest mybusybox:V1.04。删除镜像
使用“docker rmi镜像名称”命令删除无用的镜像。按图片名称删除,只会删除指定名称的图片;按图像 ID 删除将删除所有具有相同 ID 的图像。?
容器运行相关参数:
| 命令 | -Instructions-NAME | 指定容器名称:-name =容器名称 - 名称 - name Container name | ||
| -d | -d | -d | -d | -p -p 映射端口、宿主机端口:容器端口,例如:-p 3307:3306 |
| -v | 挂载目录到宿主机本地目录:容器目录,例如:-v /usr/local/nginx:/usr/local/ nginx | |||
| --restart | 自动重启,例如:--restart=always,docker服务重启后重启 |
1。创建容器
docker create (--name=容器名称) 镜像名称,例如:
docker create --name=mybusybox busybox2. 查看容器状态
docker ps -a # 查看所有容器
docker ps -a | grep mybusybox # 过滤查看指定容器
docker ps -l # 查看最近操作的容器 create 命令创建的容器处于“已创建”状态。可以通过运行命令启动容器 ![]()
![]()
3.启动容器
docker start mybusybox4.进入容器
使用“docker exec -it 容器名称 sh”命令进入容器,例如:
docker exec -it mybusybox sh5.启动容器
docker run = docker pull + docker create + docker start
docker run --name=mynginx -d -p 81:80 nginx6.停止容器
docker停止容器名称或容器ID,例如:
docker stop mybusybox
docker stop 6fbf5a7a580b7。删除容器
docker rm 容器名称或容器ID,删除前先停止容器,例如:
docker stop mybusybox
docker rm mybusybox
docker rm 6fbf5a7a580b8。查看容器日志
- docker日志容器名称或容器ID:以文件格式查看日志,类似cat;
- docker logs 容器名称或容器ID:查看实时日志,类似tail -f;
例如:
docker logs sonic_sonic-server-controller_1
docker logs -f sonic_sonic-server-controller_19。基于现有容器构建新的镜像模板
用法:docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
| OPTIONS | 说明 |
| -a | 作者信息注释 |
| - c | 使用 Dockerfile 指令创建镜像 |
| -m | 提交描述信息,类似于 git commit -m "xxxx" |
| -p | 在提交时暂停容器 |
例如:当前当前服务器应该上传到当前服务器。将正在运行的容器不跟踪迁移到另一台服务器,意味着执行以下步骤:
将当前正在运行的容器作为新镜像 A>>将新镜像 A 的镜像文件复制到另一台服务器或直接将镜像 A 发送到另一台服务器镜像仓库 >> 从另一台服务器上的镜像仓库下载镜像 A >> 基于镜像 A 创建容器并运行
① 打包容器
首先将文件复制到现有容器中
docker cp jdk_install.sh mysql:/home② 查看文件在容器中
docker exec -it mysql sh可以看到是jdk_install.sh文件被复制到了mysql容器的/home目录下: ![]()
![]()
③基于容器创建新的镜像
docker commit -a "chenjigang" mysql new-mysql查看当前镜像列表使用“docker images”命令,可以看到名为new-mysql的镜像: ![]()
![]()
④ 基于新镜像运行容器
docker run -d --name new-mysql-container -e MYSQL_ROOT_PASSWORD=123456 -p 3308:3306 new-mysql查看容器中的文件
docker exec -it new-mysql-container sh 可以在镜像中看到下面,之前复制到容器中的 jdk_install.sh 文件被保存到镜像中,并出现在新容器中:![]()
![]()
版权声明
本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。
code前端网