Centos安装docker及常见docker容器创建脚本
系统要求
- 安装docker CE需要CentOS 7的维护版本,存档版本(没在维护的版本)不支持
- 必须开启
centos-extras
仓库,默认是打开的,如果被关闭了,需要重新打开 - 推荐使用
overlay2
存储驱动,overlay
也可以但是不推荐。overlay2
要求Linux内核为4.0+
卸载旧版本
旧版本的docker叫做docker
或者docker-engine
,如果有安装,先卸载其以及其依赖,新版本的docker叫做docker-ce(Community Edition)
。/var/lib/docker/
目录下的镜像文件,容器,卷和网络将会被保留,不会被删除。
$ sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-selinux \
docker-engine-selinux \
docker-engine
安装
安装依赖包,yum-utils
提供yum-config-manager
工具,devicemapper
存储驱动需要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 CE
$ sudo yum install -y docker-ce
注意:如果安装了多个docker仓库,使用yum install
或者yum update
命令时后面不跟版本信息的话,将始终安装最高版本的docker,要安装指定版本的docker CE,可使用以下命令查询版本,版本号从高到低
$ yum list docker-ce --showduplicates | sort -r
docker-ce.x86_64 18.03.1.ce-1.el7.centos docker-ce-stable
docker-ce.x86_64 18.03.0.ce-1.el7.centos docker-ce-stable
docker-ce.x86_64 17.12.1.ce-1.el7.centos docker-ce-stable
docker-ce.x86_64 17.12.0.ce-1.el7.centos docker-ce-stable
安装指定版本的docker CE,需要指定完整的包名称,例如安装仓库中的这个版本 18.03.0.ce-1.el7.centos
,其命令为
$ sudo yum install -y docker-ce-18.03.0.ce
配置
启动docker,即启动docker deamon/守护进程/引擎
$ sudo systemctl start docker
设置docker开机自启
$ sudo systemctl enable docker
常见docker容器的创建脚本
拉取镜像
docker pull fauria/vsftpd docker pull redis docker pull mysql:5.7 docker pull rabbitmq:management
ftp:
docker run -d -p 21:21 -p 20:20 -p 21100-21110:21100-21110 -v /home/vsftpd:/home/vsftpd -e FTP_USER=root -e FTP_PASS=root -e PASV_ADDRESS=172.19.45.25 -e PASV_MIN_PORT=21100 -e PASV_MAX_PORT=21110 --name vsftpd --restart=always fauria/vsftpd
redis:
docker run -d --name redis -p 6379:6379 redis --requirepass "123456"
mysql:
mkdir /opt/mysql
mkdir /opt/mysql/conf
mkdir /opt/mysql/data
vim /opt/mysql/conf/my.cnf
[mysqld] character_set_server = utf8 [mysqld_safe] character_set_server = utf8 [mysql] default-character-set = utf8 [mysql.server] default-character-set = utf8 [client] default-character-set = utf8
再执行
docker run -d -p 3306:3306 --privileged=true -v /opt/mysql/conf/my.cnf:/etc/mysql/my.cnf -v /opt/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root --name mysql mysql:5.7 --character-set-server=utf8mb4 --collation-server=utf8mb4_general_ci
rabbitmq:
docker run -d --hostname rabbitmqHost --name rabbitmq -p 15672:15672 -p 5672:5672 rabbitmq:management
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
2019-04-25 Java集合中的细节