1.CentOS Docker 安装

1.1 官方脚本自动安装

Aliyun镜像

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

1.2 手动安装

1.2.1 若有旧版本,先卸载

$ sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

1.2.2 设置仓库

首先安装yum-config-manager和evice 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

Aliyun源

$ sudo yum-config-manager \
    --add-repo \
    http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

清华源

$ sudo yum-config-manager \
    --add-repo \
    https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo

1.2.3 安装 Docker Engine-Community

安装最新版

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

如果提示接受 GPG 密钥,选是。

安装特定版

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、选取可用版本安装

$ sudo yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io

1.3 启动Docker

sudo systemctl start docker

运行hello-world验证是否安装正确

$ sudo docker run hello-world

1.4 卸载Docker

删除安装包:

yum remove docker-ce

删除镜像、容器、配置文件等内容:

rm -rf /var/lib/docker

2 使用Docker

2.1 镜像操作

2.1.1拉取镜像

docker pull centos:8

然后通过docker images命令可以查看到当前本地的镜像:

root@test:~$ docker images
REPOSITORY    TAG       IMAGE ID       CREATED       SIZE
hello-world   latest    feb5d9fea6a5   5 weeks ago   13.3kB
centos        8         5d0da3dc9764   6 weeks ago   231MB

2.1.2 删除镜像

docker rmi hello-world

2.2 容器操作

2.2.1 单纯运行容器一次并关闭

docker run ubuntu:15.10 /bin/echo "Hello world"

输出为Hello world其中各个参数:

2.2.2 启动交互式容器

root@test:~$ docker run -it ubuntu:15.10 /bin/bash
root@0123ce188bd8:/#

各参数:

注意第二行 root@0123ce188bd8:/#,此时我们已进入一个 ubuntu15.10 系统的容器

我们可以通过运行 exit 命令或者使用 CTRL+D 来退出容器。

root@0123ce188bd8:/#  exit
exit
root@test:~# 

2.2.3 后台模式启动容器

docker run -d --name=java_ssh --privileged centos:8 /usr/sbin/init

各参数:

2.2.4 进入后台模式的容器

docker exec -it java_ssh bash

各参数:

2.2.5 查看现存容器

docker ps -a
root@test:~# docker ps -a
CONTAINER ID   IMAGE         COMMAND    CREATED          STATUS                      PORTS     NAMES
0ddbb63c175e   hello-world   "/hello"   33 minutes ago   Exited (0) 33 minutes ago             admiring_yalow

各参数:

CONTAINER ID: 容器 ID。

IMAGE: 使用的镜像。

COMMAND: 启动容器时运行的命令。

CREATED: 容器的创建时间。

STATUS: 容器状态。

状态有7种:

PORTS: 容器的端口信息和使用的连接类型(tcp\udp)。

NAMES: 自动分配的容器名称。

2.2.6 开始、停止、重启、删除容器

docker start启动一个或多个已经被停止的容器

docker start java_ssh

**`docker stop停止一个运行中的容器

docker stop java_ssh

**`docker restart 重启容器

docker restart java_ssh

docker rm删除一个或多个容器。

强制删除容器 db01、db02:

docker rm -f db01 db02

移除容器 nginx01 对容器 db01 的连接,连接名 db:

docker rm -l db 

删除容器 java_ssh, 并删除容器挂载的数据卷:

docker rm -v java_ssh

删除所有已经停止的容器:

docker rm $(docker ps -a -q)