1.安装

  1. 鉴于国内网络问题,强烈建议使用国内源,执行下面的命令添加 yum软件源:
sudo yum-config-manager \
        --add-repo \
        https://mirrors.ustc.edu.cn/docker-ce/linux/centos/docker-ce.repo
  1. 如果需要最新版本的 Docker CE 请使用以下命令:
sudo yum-config-manager --enable docker-ce-edge
  1. 安装docker CE
# Docker Engine改为Docker CE(社区版)
    - 它包含了CLI客户端、后台进程/服务以及API。用户像以前以同样的方式获取。
    # Docker Data Center改为Docker EE(企业版) 
    - 在Docker三个定价层增加了额外的支付产品和支持
  1. 更新yum软件源缓存,并安装docker CE
sudo yum makecache fast
     sudo yum install docker-ce
     # 默认安装目录
     cd /var/lib/docker
     # 启动docker
     systemctl enable docker.service
     systemctl start docker
  1. 添加docker组

而只有 root 用户和 docker组的用户才可以访问 Docker 引擎的 Unix socket。出于安全考虑,一般 Linux 系统上不会直接使用 root用户。因此,更好地做法是将需要使用 docker 的用户加入 docker 用户组。

#添加docker组
    sudo groupadd docker 
    # 将当前用户添加进docker组
    sudo usermod -aG docker $USER 
    # 退出当前终端,并重新登录并进行测试,输出如下内容代表设置成功
    docker run hello-world
  1. 镜像加速

鉴于国内网络问题,后续拉取 Docker 镜像十分缓慢,强烈建议安装 Docker 之后配置 国内镜像加速。

# 要先启动docker生成目录,默认docker配置文件在/etc/docker目录下
vim /etc/docker/daemon.json
# 添加以下内容,注意括号
{ "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"] }

指令

# 查看是否安装成功,成功输出Docker version 19.03.2, build 6a30dfc
docker -v
# 启动
sudo service docker start
# 查看启动是否成功
 ps -ef|grep docker
# 关闭
sudo service docker stop
# 重启
sudo service docker restart
# 备份
docker save -o [tar包真实路径] [镜像名 ]
-如:docker save -o /usr/docker_data/mongo-backup.tar mongo
# 恢复
docker load -i [tar包真实路径]
-如:docker load -i /usr/docker_data/mongo-backup.tar
-------------------------------------------------- 镜像 ----------------------------------------------
# 搜索镜像
docker search redis
# 查看所有镜像
docker images
# 下载镜像
docker pull redis
# 删除镜像
docker rmi redis
-------------------------------------------------- 容器 ----------------------------------------------
- 每一个容器相当于一个单独的linux系统,里面如果没有安装docker就无法使用docker命令
# 查询所有运行容器
docker ps
# 查询所有容器包括未运行容器
docker ps -a
# 创建交互式容器,一般测试容器是否能够成功创建,退出容器就停止运行
docker run -it --name=容器名称 镜像名称 /bin/bash
# 守护式容器
docker run -di --name=容器名称 镜像名称
【例子1】
- docker run -d --name redis-server -p 6379:6379 redis --requirepass "redis123"
-- name redis-server : 指定容器名称
-- -p 6379:6379 : 端口映射
-- redis:镜像名称
-- --requitepass "redis123" : 指定redis连接密码
# 进入守护式容器
docker exec -it 容器名称 /bin/bash
# 删除容器
docker rm 容器名称
# 启动容器
docker start 容器名称
# 停止容器
docker stop 容器名称
# 重启容器
docker restart 容器名称
-------------------------------------------------- 拷贝 ----------------------------------------------
# 宿主机拷贝到容器
docker cp 宿主机目录 容器名称:容器目录
docker cp hello.txt myRedis:/usr/local
【注意】如果写宿主机目录出只有具体的文件名,就会默认以宿主机的当前目录为宿主机目录或理解为文件路径
# 容器拷贝到宿主机
docker cp 容器名称:容器目录 宿主机目录
# 目录挂载:一般都使用这种方式,
docker run -di --name=容器名称 -v 宿主机目录:容器目录 镜像命令
- docker run -di --name=myRedis -v /home/eric:/usr/local/eric redis

问题

  1. 出现以下信息
WARNING: bridge-nf-call-iptables is disabled
WARNING: bridge-nf-call-ip6tables is disabled
# 那么就添加内核参数
$ sudo tee -a /etc/sysctl.conf <<-EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
  1. 执行第一步出现以下内容

Could not resolve host: mirrorlist.centos.org; Unknown error

sudo vi /etc/resolv.conf
`新增一行`
nameserver 8.8.8.8