初识 docker 安装并配置环境之CentOs-8
安装Docker Engine
卸载旧版本
较旧的Docker版本称为docker或docker-engine。如果已安装这些程序,请卸载它们以及相关的依赖项。
$ sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
使用存储库安装
在新主机上首次安装Docker Engine之前,需要设置Docker存储库。之后,您可以从存储库安装和更新Docker。
安装yum-utils软件包(提供yum-config-manager 实用程序)并设置稳定的存储库。
$ sudo yum install -y yum-utils
$ sudo yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
建议更新下 yum
$ sudo yum makecache fast
需要先安装 containerd.io 否则安装DOCKER引擎会出错( centos-7 跳过此步骤)
$ sudo dnf install https://download.docker.com/linux/centos/7/x86_64/stable/Packages/containerd.io-1.2.6-3.3.el7.x86_64.rpm
安装 DOCKER引擎
$ sudo yum install docker-ce docker-ce-cli containerd.io
启动Docker
$ sudo systemctl start docker
通过运行hello-world 映像来验证是否正确安装了Docker Engine
$ sudo docker run hello-world
配置阿里云镜像器
阿里开发者平台创建账号申请加速器地址
安装Docker Compose
官方文档的安装方法 (此处不建议使用)
$ sudo curl -L "https://github.com/docker/compose/releases/download/1.26.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
代替方案
1、安装python-pip ( centos-7 需要更新下pip )
$ sudo yum -y install epel-release
$ sudo yum -y install python-pip
$ sudo pip install --upgrade pip
2、安装docker-compose
$ sudo pip install docker-compose
2、待安装完成后,执行查询版本的命令,即可安装docker-compose
$ sudo docker-compose version
创建一个文件夹并进入(任意位置)
$ sudo mkdir webapp
$ sudo cd webapp
创建一个docker-compose.yaml
$ sudo vim docker-compose.yaml
yaml 配置
version: '3'
services: # 配置各种服务
web: # web服务
build: .
ports: # ports是指定容器的端口
- "8080:8080"
networks:
- lnmp
depends_on: # depends_on是指定启动web服务前先启动redis和mysql两个服务
- mysql
- redis
volumes:
- ./etc/localtime:/etc/localtime #同步时间
- ./etc/timezone:/etc/timezone #同步时区
links: # 链接到其它服务中的容器。使用服务名称(同时作为别名)
- redis
- mysql
redis: # redis服务
image: redis
container_name: redis # 指定容器的名称
hostname: redis
restart: always
ports:
- 6379:6379
networks: # 设置网络模式
- lnmp
volumes:
- ./redis/config/redis.conf:/etc/redis/redis.conf:rw # 挂载配置文件目录
- ./redis/data:/data:rw # 挂载数据目录
- ./etc/localtime:/etc/localtime #同步时间
- ./etc/timezone:/etc/timezone #同步时区
command:
redis-server /etc/redis/redis.conf --appendonly yes
mysql: # mysql服务
hostname: mysql
container_name: mysql
image: mysql:5.6 #从如果镜像在本地不存在,Compose将会尝试拉取镜像下载 mysql5.6版本
restart: always
ports:
- 3306:3306
networks:
- lnmp
command: --character-set-server=utf8 #执行命令,覆盖默认命令
environment: #添加环境变量
MYSQL_ROOT_PASSWORD: 111111
MYSQL_DATABASE: zxhycloudnew
MYSQL_USER: system
MYSQL_PASSWORD: 123456
volumes:
- ./mysql/data:/var/lib/mysql # 挂载数据目录
- ./mysql/config:/etc/mysql/conf.d # 挂载配置文件目录
- ./mysql/init:/docker-entrypoint-initdb.d/ # 初始化sql目录文件目录
- ./etc/localtime:/etc/localtime #同步时间
- ./etc/timezone:/etc/timezone #同步时区
networks: #加入网络lnmp,引用顶级networks下条目
lnmp:
启动应用
$ sudo docker-compose up -d
查看 docker 进程
$ sudo docker ps