安装Docker引擎
yum install docker-ce docker-ce-cli containerd.io
或者
curl -fsSL https://get.docker.com -o get-docker.sh
sh get-docker.sh
使用腾讯云,如出现:
# Executing docker install script, commit: b2e29ef7a9a89840d2333637f7d1900a83e7153f
+ sh -c 'yum install -y -q yum-utils'
Invalid configuration value: failovermethod=priority in /etc/yum.repos.d/CentOS-Epel.repo; Configuration: OptionBinding with id "failovermethod" does not exist
Error: Failed to download metadata for repo 'appstream': Cannot prepare internal mirrorlist: No URLs in mirrorlist
如出现:
yum list
EPEL for redhat/centos 8 - x86_64 62 kB/s | 4.7 kB 00:00
CentOS Linux 8 - AppStream 75 B/s | 38 B 00:00
Error: Failed to download metadata for repo 'appstream': Cannot prepare internal mirrorlist: No URLs in mirrorlist
修改 centos 文件内容
sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-*
sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-*
yum update -y
没有启动使用docker命令时:
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
启动Docker
systemctl start docker
systemctl enable docker
测试
docker --version
- 下载最新版的docker-compose文件
curl -L https://github.com/docker/compose/releases/download/1.16.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
用daocloud下载
curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
- 添加可执行权限
chmod +x /usr/local/bin/docker-compose
docker-compose --version
pip安装
pip install docker-compose
docker-compose.yml 属性
- version:指定 docker-compose.yml 文件的写法格式
- services:多个容器集合
- build:配置构建时,Compose 会利用它自动构建镜像,该值可以是一个路径,也可以是一个对象,用于指定 Dockerfile 参数
build: ./dir
---------------
build:
context: ./dir
dockerfile: Dockerfile
args:
buildno: 1
- command:覆盖容器启动后默认执行的命令
command: bundle exec thin -p 3000
----------------------------------
command: [bundle,exec,thin,-p,3000]
- dns:配置 dns 服务器,可以是一个值或列表
- environment:环境变量配置,可以用数组或字典两种方式
environment:
RACK_ENV: development
SHOW: 'ture'
-------------------------
environment:
- RACK_ENV=development
- SHOW=ture
- env_file:从文件中获取环境变量,可以指定一个文件路径或路径列表,其优先级低于 environment 指定的环境变量
env_file: .env
---------------
env_file:
- ./common.env
- expose:暴露端口,只将端口暴露给连接的服务,而不暴露给主机
- image:指定服务所使用的镜像
- network_mode:设置网络模式
- ports:对外暴露的端口定义,和 expose 对应
- links:将指定容器连接到当前连接,可以设置别名,避免ip方式导致的容器重启动态改变的无法连接情况
links: # 指定服务名称:别名
- docker-compose-eureka-server:compose-eureka
- volumes:卷挂载路径
- logs:日志输出信息
添加子网络
docker network create --driver bridge --subnet 172.29.0.0/16 --gateway 172.29.0.1 my_net
解析:
--driver bridge 表示使用桥接模式
--subnet 192.168.1.0/16 表示子网ip 可以分配 192.168.1.2 到 192.168.255.255
--gateway 192.168.1.0 表示网关
mynet 表示网络名