CentOS Docker 安装
卸载较旧版本
较旧的 Docker 版本称为 docker 或 docker-engine 。如果已安装这些程序,请卸载它们以及相关的依赖项。
rpm -qa | grep docker #查看是否有依赖项
安装 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://download.docker.com/linux/centos/docker-ce.repo
安装最新版本的Docker Engine-Community
sudo yum install docker-ce docker-ce-cli containerd.io
Docker 安装完默认未启动。已经创建好 docker 用户组,但该用户组下没有用户。
要安装特定版本的 Docker Engine-Community,请在存储库中列出可用版本,然后选择并安装:
1、列出并排序您存储库中可用的版本。此示例按版本号(从高到低)对结果进行排序。
yum list docker-ce --showduplicates | sort -r
docker-ce.x86_64 3:18.09.1-3.el7 docker-ce-stable
docker-ce.x86_64 3:18.09.0-3.el7 docker-ce-stable
docker-ce.x86_64 18.06.1.ce-3.el7 docker-ce-stable
docker-ce.x86_64 18.06.0.ce-3.el7 docker-ce-stable
2、通过其完整的软件包名称安装特定版本,该软件包名称是软件包名称(docker-ce)加上版本字符串(第二列)。版本号是从第一个冒号(:)一直到第一个连字符,并用连字符(-)分隔。例如:docker-ce-18.09.1。
sudo yum install docker-ce-
<VERSION_STRING>
docker-ce-cli-<VERSION_STRING>
containerd.io
启动 Docker
sudo systemctl start docker
Docker默认是从DockerHub拉取镜像,我们可以配置加速地址从国内拉取。
Docker 的基本操作
获取帮助信息
docker 查看 Docker 客户端的所有命令选项
docker stats --help 查看指定的 Docker 命令使用方法。
容器使用
获取镜像
如果我们本地没有 ubuntu 镜像,我们可以使用 docker pull 命令来载入 ubuntu 镜像:
docker pull ubuntu
我们还可以直接像下面的例子一样,直接启动容器,如果没有使用docker pull
预下载镜像,在通过镜像启动容器的同时,会下载镜像。
docker images #查看本地镜像
启动容器
在宿主主机内使用 docker logs 命令,查看容器内的标准输出:
runoob@runoob:~$ docker logs 2b1b7a428627 #除了容器ID还可以用容器名称
以下命令使用 ubuntu 镜像启动一个容器,启动的同时会进入到容器里面,可以执行一系列的操作我们也可以不带任何参数的启动一个容器:
docker run -it ubuntu /bin/bash
参数说明:
- -i: 交互式操作。
- -t: 在新容器内指定一个伪终端或终端。
- ubuntu: ubuntu 镜像。
- /bin/bash:放在镜像名后的是命令,这里我们希望有个交互式Shell,因此用的是 /bin/bash。
以上命令会让我们直接进入到容器里面,要退出终端,直接输入 exit 或 Ctrl + d。退出终端后,容器也将会停止。
容器的启动和停止
docker start
容器名称/容器ID
docker stop
容器名称/容器ID
docker restart
容器名称/容器ID
docker ps -a
查看所有的容器(包括停止和启动的容器,不加a只看启动的容器
docker ps 输出详情介绍
runoob@runoob:~$ docker ps
CONTAINER ID IMAGE COMMAND ...
5917eac21c36 ubuntu:15.10 "/bin/sh -c 'while t…" ...
输出详情介绍:
CONTAINER ID: 容器 ID。
IMAGE: 使用的镜像。
COMMAND: 启动容器时运行的命令。
CREATED: 容器的创建时间。
STATUS: 容器状态。
状态有7种:
- List item
- created(已创建)
- restarting(重启中)
- running(运行中)
- removing(迁移中)
- paused(暂停)
- exited(停止)
- dead(死亡)
PORTS: 容器的端口信息和使用的连接类型(tcp\udp)。
NAMES: 自动分配的容器名称。
后台运行
在大部分的场景下,我们希望 docker 的服务是在后台运行的,我们可以过 -d 指定容器的运行模式。
docker run -itd --name ubuntu-test ubuntu /bin/bash
–name :设置容器名称
进入容器
在使用 -d 参数时,容器启动后会进入后台。此时想要进入容器,可以通过以下指令进入:
- docker attach
- docker exec:推荐大家使用 docker exec 命令,因为此方法退出容器终端,不会导致容器的停止。
attach 命令
docker attach 1e560fca3906
注意: 如果从这个容器退出,会导致容器的停止。
exec 命令
docker exec -it 243c32535da7 /bin/bash
此方法退出容器终端,不会导致容器的停止。
导入和导出容器
导出容器
docker export 1e560fca3906 > ubuntu.tar
导出容器快照到本地文件,不需要容器停止就可以导出。就像一个快照一样,保存容器的运行状态和环境。
导入容器
cat docker/ubuntu.tar | docker import - test/ubuntu:v1
test/ubuntu:v1
冒号前为容器的名称,后为标签。
此外,也可以通过指定 URL 或者某个目录来导入,例如:
docker import http://example.com/exampleimage.tgz example/imagerepo
删除容器
docker rm -f 1e560fca3906
docker container prune #清理掉所有处于终止状态的容器。