docker笔记整理

2022/3/3 docker

https://hub.docker.com/

# 手动安装

# 卸载旧版本

sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine
1
2
3
4
5
6
7
8

# 删除之前安装的版本

yum remove docker-ce

rm -rf /var/lib/docker
1
2
3

# 安装 Docker Engine-Community

# 使用 Docker 仓库进行安装

在新主机上首次安装 Docker Engine-Community 之前,需要设置 Docker 仓库。之后,您可以从仓库安装和更新 Docker。

设置仓库

安装所需的软件包。yum-utils 提供了 yum-config-manager ,并且 device mapper 存储驱动程序需要 device-mapper-persistent-data 和 lvm2。

sudo yum install -y yum-utils \
  device-mapper-persistent-data \
  lvm2


sudo yum-config-manager \
    --add-repo \
    https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo
1
2
3
4
5
6
7
8

# 安装 Docker Engine-Community

# 安装最新版本

sudo yum install docker-ce docker-ce-cli containerd.io
1

# 安装稳定版本

列出并排序您存储库中可用的版本。此示例按版本号(从高到低)对结果进行排序。

yum list docker-ce --showduplicates | sort -r
已加载插件:fastestmirror, langpacks
可安装的软件包
 * updates: mirrors.bupt.edu.cn
Loading mirror speeds from cached hostfile
 * extras: mirrors.njupt.edu.cn
docker-ce.x86_64            3:20.10.9-3.el7                     docker-ce-stable
docker-ce.x86_64            3:20.10.8-3.el7                     docker-ce-stable
docker-ce.x86_64            3:20.10.7-3.el7                     docker-ce-stable
docker-ce.x86_64            3:20.10.6-3.el7                     docker-ce-stable
docker-ce.x86_64            3:20.10.5-3.el7                     docker-ce-stable
1
2
3
4
5
6
7
8
9
10
11

通过其完整的软件包名称安装特定版本,该软件包名称是软件包名称(docker-ce)加上版本字符串(第二列),从第一个冒号(:)一直到第一个连字符,并用连字符(-)分隔。例如:docker-ce-20.10.9。

# 安装上面列表第一行的稳定版本
sudo yum install docker-ce-20.10.9 docker-ce-cli-20.10.9 containerd.io
1
2

# 启动 Docker

sudo systemctl start docker

# 通过运行 hello-world 映像来验证是否正确安装了 Docker Engine-Community 。
sudo docker run hello-world
1
2
3
4

# 使用笔记

一个例子说明参数作用

docker run -itd --name ubuntu -p 5000:5000 ubuntu:15.10 /bin/bash
1
  • docker: Docker 的二进制执行文件。
  • run: 与前面的 docker 组合来运行一个容器。
  • ubuntu:15.10 指定要运行的镜像,Docker 首先从本地主机上查找镜像是否存在,如果不存在,Docker 就会从镜像仓库 Docker Hub 下载公共镜像。
  • /bin/bash 在启动的容器里执行的命令
  • -t: 在新容器内指定一个伪终端或终端。
  • -i: 允许你对容器内的标准输入 (STDIN) 进行交互。
  • -d: -d:让容器在后台运行。
  • -name: 自定义docker名字
  • -P: 将容器内部使用的网络端口随机映射到我们使用的主机上。
  • -p: 是容器内部端口绑定到指定的主机端口。

# 常用命令

  • docker ps 查看容器
docker ps -l  # 查询最后一次创建的容器
1
  • docker stop 停止容器
docker stop ubuntu  #  可以是是名字,可以是ID
1
  • docker exec 连接容器

  • docker port 查看端口映射

  • docker start 启动

  • docker restart 重启

  • docker rm 删除容器

  • docker images 列出本地镜像列表

  • docker pull 下载镜像

  • docker search 查找镜像

  • docker rmi 删除镜像

  • docker inspect 查看容器状态

# 查看容器所有状态信息
docker inspect NAMES 

# 查看 容器ip 地址
docker inspect --format='{{.NetworkSettings.IPAddress}}' ID/NAMES
docker inspect tracker |grep IPAddress

# 容器运行状态
docker inspect --format '{{.Name}} {{.State.Running}}' NAMES
1
2
3
4
5
6
7
8
9

# 文件传递

docker cp /root/test.txt ecef8319d2c8:/root/

docker cp ecef8319d2c8:/root/test.txt /root/
1
2
3

# 网络连接

# 新建网络

docker network create -d bridge test-net
1
  • -d:参数指定 Docker 网络类型,有 bridge、overlay

# 连接容器

运行一个容器并连接到新建的 test-net 网络:

$ docker run -itd --name test1 --network test-net ubuntu /bin/bash
1

打开新的终端,再运行一个容器并加入到 test-net 网络:

$ docker run -itd --name test2 --network test-net ubuntu /bin/bash
1
/*进入容器*/
docker exec -it storage /bin/bash
1
2
留言:
    更新日期: 2022/4/27 下午2:27:30