目录
1. `docker --version` 功能:显示 Docker 的版本信息
2. `docker pull` 功能: 从 Docker Hub 或其他 Docker 注册表中下载镜像
3. `docker images` 功能: 列出本地所有的 Docker 镜像
4. `docker run`功能: 从指定的镜像启动一个新的容器
6. `docker stop` 功能: 停止一个运行中的容器
7. `docker start` 功能: 启动一个已停止的容器
8. `docker restart` 功能: 重启一个容器
11. `docker exec` 功能: 在运行的容器中执行命令
12. `docker logs` 功能: 查看容器的日志输出
13. `docker build` 功能: 使用 `Dockerfile` 构建一个镜像
15. `docker push` 功能: 将镜像推送到 Docker 注册表
16. `docker network ls` 功能: 列出所有 Docker 网络
17. `docker network create` 功能: 创建一个新的 Docker 网络
18. `docker volume ls` 功能: 列出所有 Docker 卷
19. `docker volume create` 功能: 创建一个新的 Docker 卷
1. docker拉取镜像ubuntu18.04
命令:
下载命令(使用 wget):
wget https://partner-images.canonical.com/core/bionic/current/ubuntu-bionic-core-cloudimg-amd64-root.tar.gz
或者使用 curl:
curl -O https://partner-images.canonical.com/core/bionic/current/ubuntu-bionic-core-cloudimg-amd64-root.tar.gz
导入镜像到 Docker:
sudo docker import ubuntu-bionic-core-cloudimg-amd64-root.tar.gz ubuntu:18.04
验证镜像:
sudo docker images
启动容器:
sudo docker run -it ubuntu:18.04 /bin/bash
2. 管理 Docker 容器
2.1 常用指令
2.2 基于已有镜像创建容器,并每回打开特定的容器
每回运行run命令都会创建一个新的容器,为了避免这样的困扰,给容器特定名,每回打开都打开相应容器即可
2.2.1 创建容器
有了镜像以后,创建容器去使用
docker run -it --name my-ubuntu-container ubuntu:18.04 /bin/bash
2.3 在创建容器时使用挂载卷
docker run -it --name autoware -v /home/zxy:/container/dir autoware/autoware:latest-melodic-cuda /bin/bash
2.4 如何在容器中访问挂载的目录
2.5 命名和启动容器
docker run -it --name test-container test/ubuntu:zxy /bin/bash
docker run -it --name autoware-container autoware/ubuntu /bin/bash
2.6 列出和管理容器,激活容器并进入,不需要重新创建
首先要启动一个容器,然后再进入该容器
示例如下
3. docker镜像的创建使用管理
3.1 镜像创建
3.1.1 指令创建
![](https://img-blog.csdnimg.cn/direct/a0d8c6d460e24ddaaa8257dfa882f46e.png)
sudo docker commit -m="update" -a="fu" 3601 ros-autoware
## 3601是一个容器的id前几位,ros-autoware是镜像命名
3.1.2 Dockerfile创建和管理
首先创建一个名为“Dockerfile”的文件
![](https://img-blog.csdnimg.cn/direct/c123753e5f1d447e8a3a60229329a842.png)
然后编辑Dockerfile文件
然后build出来
sudo docker build -t data-close-loop .
sudo docker build -t data-close-loop/ubuntu:18.04 .
后面的 .表示在当前文件夹,指令要在当前文件夹下面进行
![](https://img-blog.csdnimg.cn/direct/df5bd28a10dc4a389785176b0c95b897.png)
4. docker基本指令
Docker 是一个开源的平台,可以用于自动化应用程序的部署和管理。了解一些基本的 Docker 指令有助于快速上手。以下是一些常用的 Docker 指令及其功能的中文说明:
基本 Docker 指令
-
1. `docker --version` 功能:显示 Docker 的版本信息
docker --version
-
2. `docker pull` 功能: 从 Docker Hub 或其他 Docker 注册表中下载镜像
docker pull [image-name]
例如:
docker pull ubuntu
这会下载最新版本的 `ubuntu` 镜像。
注意:如果指令拉取镜像不成功,就先下载docker中ubuntu18.04的包,再导入进去,详情见笔记中1. docker拉取镜像ubuntu18.04
-
3. `docker images` 功能: 列出本地所有的 Docker 镜像
docker images
。
-
4. `docker run`功能: 从指定的镜像启动一个新的容器
docker run [options] [image-name] [command]
。例如
docker run -it ubuntu /bin/
这会启动一个交互式的 Ubuntu 容器并进入其 `/bin/` shell。
常用选项:
`-d`:后台运行容器。
`-i`:交互模式。
`-t`:分配一个伪终端。
`--name`:给容器指定一个名称。
`-p`:端口映射,例如 `-p 8080:80` 将本地 8080 端口映射到容器的 80 端口。
比如:启动ubuntu18.04容器
sudo docker run -it ubuntu:18.04 /bin/bash
-
5. `docker ps` 功能: 列出当前运行的容器
docker ps
。使用 `-a` 参数可以查看所有容器,包括停止的:
docker ps -a
-
6. `docker stop` 功能: 停止一个运行中的容器
docker stop [container-id/name]
。例如:
docker stop my-container
这会停止名为 `my-container` 的容器。
-
7. `docker start` 功能: 启动一个已停止的容器
docker start [container-id/name]
。例如:
docker start my-container
这会启动名为 `my-container` 的容器。
-
8. `docker restart` 功能: 重启一个容器
docker restart [container-id/name]
。例如:
docker restart my-container
这会重启名为 `my-container` 的容器。
-
9. `docker rm` 功能: 删除一个容器
docker rm [container-id/name]
。例如:
docker rm my-container
这会删除名为 `my-container` 的容器。要删除所有停止的容器,可以使用:
docker container prune
-
10. `docker rmi` 功能: 删除一个镜像
docker rmi [image-id/name]
功能: 删除一个镜像。例如:
docker rmi ubuntu
这会删除名为 `ubuntu` 的镜像。
-
11. `docker exec` 功能: 在运行的容器中执行命令
docker exec [options] [container-id/name] [command]
功能: 在运行的容器中执行命令。例如:
docker exec -it my-container /bin/
这会在名为 `my-container` 的容器中启动一个交互式的 `/bin/` 会话。
-
12. `docker logs` 功能: 查看容器的日志输出
docker logs [container-id/name]
功能: 查看容器的日志输出。例如:
docker logs my-container
这会显示 `my-container` 的日志。
-
13. `docker build` 功能: 使用 `Dockerfile` 构建一个镜像
docker build [options] [path]
功能: 使用 `Dockerfile` 构建一个镜像。例如:
docker build -t my-image:latest .
这会使用当前目录下的 `Dockerfile` 构建一个名为 `my-image` 的镜像。
-
14. `docker tag` 功能: 给现有镜像打标签
docker tag [image-id/name] [new-image-name]
功能: 给现有镜像打标签。例如:
docker tag ubuntu myrepo/ubuntu:v1
这会给 `ubuntu` 镜像打上 `myrepo/ubuntu:v1` 的标签。
-
15. `docker push` 功能: 将镜像推送到 Docker 注册表
docker push [repository/image-name]
功能: 将镜像推送到 Docker 注册表。例如:
docker push myrepo/ubuntu:v1
这会将 `myrepo/ubuntu:v1` 镜像推送到注册表中。
-
16. `docker network ls` 功能: 列出所有 Docker 网络
docker network ls
功能: 列出所有 Docker 网络。
-
17. `docker network create` 功能: 创建一个新的 Docker 网络
-
docker network create [options] [network-name]
功能: 创建一个新的 Docker 网络。例如:
docker network create my-network
这会创建一个名为 `my-network` 的新网络。
-
18. `docker volume ls` 功能: 列出所有 Docker 卷
docker volume ls
功能: 列出所有 Docker 卷。
-
19. `docker volume create` 功能: 创建一个新的 Docker 卷
docker volume create [volume-name]
功能: 创建一个新的 Docker 卷。例如:
docker volume create my-volume
这会创建一个名为 `my-volume` 的新卷。
常见用法示例
- 运行一个交互式的 Ubuntu 容器:
docker run -it ubuntu /bin/
启动一个 Ubuntu 容器并进入其 shell。
- 列出所有运行中的容器:
docker ps
显示当前正在运行的容器列表。
- 构建一个 Docker 镜像:
docker build -t my-image:latest .
使用当前目录中的 `Dockerfile` 构建镜像 `my-image`。
- 推送镜像到 Docker Hub:
docker push myrepo/my-image:latest
将镜像 `myrepo/my-image` 推送到 Docker Hub。
这些指令帮助你管理 Docker 容器、镜像、网络和卷。理解和掌握这些基础指令将有助于你在 Docker 上有效地开发和部署应用程序。
5. docker使用中daemon.json文件编辑问题,导致docker无法启动
文件中有两个 JSON 对象,会导致docker无法启动的现象
原因分析:
你的 /etc/docker/daemon.json
文件中有两个 JSON 对象,这是导致 Docker 服务无法启动的问题。有效的 JSON 配置文件只能包含一个顶级对象,而你的配置文件实际上应该合并这些配置.
修改:合并JSON配置
注意格式问题,两个之间要有,逗号隔开
正确的文件如下:
6. docker使用中daemon.json文件编辑问题,导致docker无法启动
文件中有两个 JSON 对象,会导致docker无法启动的现象
原因分析:
你的 /etc/docker/daemon.json
文件中有两个 JSON 对象,这是导致 Docker 服务无法启动的问题。有效的 JSON 配置文件只能包含一个顶级对象,而你的配置文件实际上应该合并这些配置.
修改
注意格式问题,两个之间要有,逗号隔开
正确的文件如下: