# CentOS 7 安装环境
[root@VM-4-12-centos ~]# cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)
[root@VM-4-12-centos /]# uname -a
Linux VM-4-12-centos 3.10.0-1160.62.1.el7.x86_64 #1 SMP Tue Apr 5 16:57:59 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
# CentOS 8 安装环境
[root@VM-4-2-centos ~]# cat /etc/redhat-release
CentOS Linux release 8.5.2111
[root@VM-4-2-centos ~]# uname -a
Linux VM-4-2-centos 4.18.0-348.7.1.el8_5.x86_64 #1 SMP Wed Dec 22 13:25:12 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
[root@VM-4-12-centos /]# yum update
[root@VM-4-12-centos /]# yum install -y yum-utils device-mapper-persistent-data lvm2
CentOS 8 下安装异常:
错误1:Invalid configuration value: failovermethod=priority in /etc/yum.repos.d/CentOS-Epel.repo。
解决方法:进入文件 /etc/yum.repos.d/CentOS-Epel.repo
,将 failovermethod=priority
注释。
错误2:为仓库 'appstream' 下载元数据失败 : Cannot prepare internal mirrorlist: No URLs in mirrorlist。
解决方法:将下载源更换为阿里源等镜像源,可以具体搜索操作步骤或直接运行一下命令更换镜像源。
[root@VM-4-2-centos ~]# sudo sed -i -e "s|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g" /etc/yum.repos.d/CentOS-*
# 中央仓库
[root@VM-4-12-centos /]# yum-config-manager --add-repo http://download.docker.com/linux/centos/docker-ce.repo
# 阿里仓库
[root@VM-4-12-centos /]# yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# CentOS 7 下安装,后面的版本号自己选择
[root@VM-4-12-centos /]# yum install docker-ce-20.10.9.ce
# CentOS 8 下安装
[root@VM-4-2-centos yum.repos.d]# yum install docker-ce docker-ce-cli containerd.io -y
这里按道理说不管你的环境是7还是8都可以用相同的命令进行安装,但是我在环境8下用选择版本的方式安装时报错:GPG 检查失败,网上查找了一些资料和解决方法后嫌太麻烦就没有去折腾而换了一个安装命令进行安装。
# 启动 Docker
[root@VM-4-12-centos /]# systemctl start docker
# 设置开机自启
[root@VM-4-12-centos /]# sudo systemctl enable docker
# 查看 Docker 进程是否启动
[root@VM-4-12-centos /]# ps aux|grep docker
# 测试 Docker 是否启动正常
[root@VM-4-12-centos ~]# docker run hello-world
到这里我的 Docker 安装可以说是已经完成了。在安装过程中,SentOS 7 环境下一路绿灯,没有碰上任何安装异常,可在 SentOS 8 环境下安装就碰上了各种奇葩的安装异常,如果不是什么特殊项目依赖建议小伙伴们还是直接选择7吧,省心不需要瞎折腾。如果喜欢折腾的小伙伴就自己去折腾。
编辑这个文件
[root@VM-4-12-centos /]# vim /etc/docker/daemon.json
新增配置 Docker 配置国内镜像源
{
"registry-mirrors": ["https://2wb2i7qs.mirror.aliyuncs.com"]
}
重启 Docker 服务
[root@VM-4-12-centos /]# systemctl daemon-reload
[root@VM-4-12-centos /]# systemctl restart docker.service
# 查询当前有哪些Portainer镜像
[root@VM-4-12-centos /]# docker search portainer
# 单机版下载镜像以及运行(英文版)
[root@VM-4-12-centos /]# docker pull portainer/portainer
[root@VM-4-12-centos /]# docker run -d -p 9000:9000 --restart=always -v /var/run/docker.sock:/var/run/docker.sock --name prtainer-reid portainer/portainer
* 该语句用宿主机9000端口关联容器中的9000端口,并给容器起名为 portainer-reid。启动成功后,使用该机器 IP:PORT 即可访问 Portainer。
* -d:后台运行容器,并返回容器 ID;
* -p:容器内部端口随机映射到主机的高端口“,前面的9000是容器默认端口,后面的9000是安装后映射的端口(冒号前后)。
* --name:容器的名字
* --restart always:总是 Docker 启动后容器自动启动;
* -v:路径映射,Portainer 的路径映射用默认就行,如果为了方便迁移可以映射到 Nas 的实体路径。
# 单机版下载镜像以及运行(中文版)
[root@VM-4-12-centos /]# docker pull hub-mirror.c.163.com/6053537/portainer-ce
[root@VM-4-12-centos /]# docker run -d --restart=always --name="prtainer-reid" -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data 6053537/portainer-ce
# 集群运行
[root@VM-4-12-centos /]# docker run -d -p 9000:9000 --restart=always --name prtainer-reid portainer/portainer
官方demo体验
地址:http://demo.portainer.io/
用户名:admin
密码:tryportainer
Docker 可视化工具官方安装文档
[root@VM-4-12-centos ~]# yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine
通过 yum 的方式安装 Docker,它默认的存储位置是 /var/lib/docker,默认的 pid 存放位置是 /var/run/docker.pid
Docker 常用命令:
# 启动 docker
$ service docker start
$ systemctl start docker
# 重启 docker
$ service docker restart
$ systemctl restart docker
# 守护进程重启
$ systemctl daemon-reload
# 停止 docker
$ docker service docker stop
$ docker systemctl stop docker
# 查看镜像列表
$ docker image ls
* 镜像列表说明:
* REPOSITORY:镜像所在的仓库名称
* TAG:镜像标签
* IMAGEID:镜像ID
* CREATED:镜像的创建日期(不是获取该镜像的日期)
* SIZE:镜像大小
# 查找远程镜像
$ docker search 镜像名称
# 查看正在运行的容器
$ docker container ls
# 查看所有的容器
$ docker container ls --all
# 下载镜像
$ docker image pull 仓库名称/镜像名称
$ docker pull 仓库名称/镜像名称
# 删除镜像
$ docker image rm 镜像名或镜像ID
# 创建容器
$ docker run [option] 镜像名 [向启动容器中传入的命令]
* 常用可选参数说明:
* -i 表示以《交互模式》运行容器。
* -t 表示容器启动后会进入其命令行。加入这两个参数后,容器创建就能登录进去。即分配一个伪终端。
* --name 为创建的容器命名。
* -v 表示目录映射关系,即宿主机目录:容器中目录。注意:最好做目录映射,在宿主机上做修改,然后共享到容器上。
* -d 会创建一个守护式容器在后台运行(这样创建容器后不会自动登录容器)。
* -p 表示端口映射,即宿主机端口:容器中端口。
* --network=host 表示将主机的网络环境映射到容器中,使容器的网络与主机相同。
# 容器中运行镜像
$ docker run -di --name=容器名称 仓库名称/镜像名称
# 交互式容器
$ docker run -it --name=ubuntu1 ubuntu /bin/bash
# 开启守护式容器
$ docker run -dit --name=ubuntu2 ubuntu
# 查看容器
$ docker ps [OPTIONS]
* OPTIONS说明:
* -a :显示所有的容器,包括未运行的。
* -f :根据条件过滤显示的内容。
* --format :指定返回值的模板文件。
* -l :显示最近创建的容器。
* -n :列出最近创建的n个容器。
* --no-trunc :不截断输出。
* -q :静默模式,只显示容器编号。
* -s :显示总的文件大小。
# 进入到容器内部交互环境
$ docker exec -it 容器名或容器ID
# 停止容器
$ docker container stop 容器名或容器ID
# 销毁容器
$ docker container kill 容器名或容器ID
# 启动容器
$ docker container start 容器名或容器ID
# 导出容器
$ docker export -o 导出位置 容器名或容器ID
# 导入容器
$ docker import 容器名称 重命容器名
# 删除容器
$ docker container rm 容器名或容器ID
# 将容器制作成镜像
$ docker commit 容器名 镜像名
# 镜像打包备份
$ docker save -o 保存的文件名 镜像名
# 镜像解压
$ docker load -i 文件路径/备份文件
# 导出镜像
$ docker save -o 导出位置 源镜像名/源镜像ID
# 导入镜像
$ docker l oad -i 镜像名称
Docker 官方文档