CentOS Docker 安装

参考地址:https://www.runoob.com/docker/centos-docker-install.html

 

CentOS Docker 安装

Docker 支持以下的 64 位 CentOS 版本:

  • CentOS 7
  • CentOS 8
  • 更高版本...

自动安装

   使用官方安装脚本安装命令如下:

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

手动安装

卸载旧版本

较旧的 Docker 版本称为 docker 或 docker-engine 。如果已安装这些程序,请卸载它们以及相关的依赖项。

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

 yum镜像源配置

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

$ sudo yum install -y yum-utils

使用以下命令来设置稳定的仓库。

官方源(比较慢)

$ sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo

 

可以选择国内的一些源地址:

阿里云

$ sudo yum-config-manager \
    --add-repo \
    https://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

 

安装 Docker 

安装最新版本的 Docker Engine-Community 和 containerd,或者转到下一步安装特定版本:

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

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

有多个 Docker 仓库吗?

如果启用了多个 Docker 仓库,则在未在 yum install 或 yum update 命令中指定版本的情况下,进行的安装或更新将始终安装最高版本,这可能不适合您的稳定性需求。

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

通过运行 hello-world 镜像来验证是否正确安装了 Docker Engine-Community 。

$ sudo docker run hello-world

 

卸载 docker

删除安装包:

yum remove docker-ce

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

rm -rf /var/lib/docker 

 

dokcer源配置

 1、配置registry-mirrors源地址

vim /etc/docker/daemon.json

#添加以下mirrors源到daemon.json
{
  "dns": ["114.114.114.114", "8.8.8.8"],
  "registry-mirrors": [
        "https://docker.hpcloud.cloud",
        "https://docker.m.daocloud.io",
        "https://docker.unsee.tech",
        "https://docker.1panel.live",
        "http://mirrors.ustc.edu.cn",
        "https://docker.chenby.cn",
        "http://mirror.azure.cn",
        "https://dockerpull.org",
        "https://dockerhub.icu",
        "https://hub.rat.dev",
        "https://mpoqfnbe.mirror.aliyuncs.com",
        "https://docker.888666222.xyz",
        "https://atomhub.openatom.cn/",
        "https://docker.m.daocloud.io",
        "https://dockerproxy.com",
        "https://docker.mirrors.ustc.edu.cn",
        "https://docker.nju.edu.cn",
        "https://reg-mirror.qiniu.com",
        "https://docker.rainbond.cc"
    ]
}

2、重启docker服务

systemctl daemon-reload
systemctl restart docker

docker代理服务器配置

如果有代理服务器,可配置代理服务器访问网络。

下面是来自 官方文档 的操作步骤和详细解释:

1、创建 dockerd 相关的 systemd 目录,这个目录下的配置将覆盖 dockerd 的默认配置

$ sudo mkdir -p /etc/systemd/system/docker.service.d

新建配置文件 /etc/systemd/system/docker.service.d/http-proxy.conf,这个文件中将包含环境变量

[Service]
Environment="HTTP_PROXY=http://proxy.example.com:80"
Environment="HTTPS_PROXY=https://proxy.example.com:443"

如果http/https连接超时,并VPN支持socks5代理,可以使用socks5来代理,修改代理配置 /etc/systemd/system/docker.service.d/http-proxy.conf

[root@localhost ~]# docker search  centos
Error response from daemon: Get "https://index.docker.io/v1/search?q=centos&n=25": proxyconnect tcp: dial tcp 172.18.1.111:21883: i/o timeout
[Service]
Environment="HTTP_PROXY=socks5://proxy.example.com:port"
Environment="HTTPS_PROXY=socks5://proxy.example.com:port"
[root@localhost ~]# docker search  centos
NAME                           DESCRIPTION                                      STARS     OFFICIAL
centos                         DEPRECATED; The official build of CentOS.        7757      [OK]
centos/postgresql-10-centos7   PostgreSQL is an advanced Object-Relational …   20        
centos/redis-5-centos8                                                          0         
centos/postgresql-96-centos7   PostgreSQL is an advanced Object-Relational …   45        
centos/postgresql-10-centos8                                                    0         
centos/httpd-24-centos8                                                         3         
centos/systemd                 systemd enabled base container.                  115  

如果你自己建了私有的镜像仓库,需要 dockerd 绕过代理服务器直连,那么配置 NO_PROXY 变量:

[Service]
Environment="HTTP_PROXY=http://proxy.example.com:80"
Environment="HTTPS_PROXY=https://proxy.example.com:443"
Environment="NO_PROXY=your-registry.com,10.10.10.10,*.example.com"

 

多个 NO_PROXY 变量的值用逗号分隔,而且可以使用通配符(*),极端情况下,如果 NO_PROXY=*,那么所有请求都将不通过代理服务器。

重新加载配置文件,重启 dockerd

$ sudo systemctl daemon-reload
$ sudo systemctl restart docker

检查确认环境变量已经正确配置:

$ sudo systemctl show --property=Environment docker

从 docker info 的结果中查看配置项。


docker容器中安装本地包

### 使用 Docker 拉取 CentOS 镜像并在其中安装本地软件包的步骤

1. 拉取 CentOS 镜像

 docker pull centos

2. 创建并启动一个容器

docker run -it --name my_centos centos /bin/bash

3. 将本地软件包复制到容器中

   假设本地软件包位于 `/path/to/local/package.rpm`。
  
docker cp /path/to/local/package.rpm my_centos:/root/

4. 进入容器并安装软件包

docker exec -it my_centos /bin/bash
   在容器内执行以下命令安装软件包:   
yum install -y /root/package.rpm

5. 验证安装

  安装完成后,可以使用以下命令验证软件包是否已成功安装:   
rpm -q package_name

6. 退出容器   

exit

7、查看当前所有容器的列表   

docker ps -a

8. 提交更改以保存新的镜像(可选)

  如果希望将安装了软件包的容器保存为一个新的镜像,可以使用以下命令:  
docker commit my_centos new_image_name

9. 运行新镜像(可选)  

docker run -it new_image_name /bin/bash

10   进入容器的交互式 Shell   

docker exec -it <容器ID或名称> /bin/bash

11 以指定用户运行命令   

docker exec -u 用户-it <容器ID或名称> /bin/bash

12、 设置环境变量并运行命令   

docker exec -e ENV_VAR=value -it <容器ID或名称> /bin/bash

13、启动容器并指定工作目录   

docker exec -w /app -it <容器ID或名称> /bin/bash

14、查看启动的容器的参数信息

1、docker inspect [容器ID或名称]
2、docker ps --no-trunc

15、docker导出容器

docker save -o <输出文件路径> <镜像名称>:<标签> 

16、docker导入容器

docker load -i <输入文件路径>

 

posted @ 2024-11-23 11:14  随风秋叶  阅读(123)  评论(0)    收藏  举报