docker-compose操作容器
docker-compose:是一个用于定义和运行多容器 Docker 的应用程序工具,可以帮助我们可以轻松、高效的管理容器
一、安装docker-compose
1.1-1.3是安装docker-compose 1.x版本的,如果要安装2.x,通过1.3离线安装,看1.4安装compose-switch。详情请看https://github.com/docker/compose#where-to-get-docker-compose
二、使用python2安装
yum install -y epel-release:如果安装报错,则修改以下配置
vi /etc/yum.repos.d/epel.repo
注释掉metalink ,取消注释 baseurl
安装pip
#安装pip yum install -y python-pip #更新pip pip install --upgrade pip #如果更新报错使用下面命令更新 python -m pip install -U --force-reinstall pip安装docker-compose
指定源:pip install docker-compose -i https://pypi.tuna.tsinghua.edu.cn/simple
不指定源:pip install -i https://pypi.tuna.tsinghua.edu.cn/simple
指定版本:pip install docker-compose==1.28.2
指定源和版本:pip install docker-compose==1.28.2 -i https://pypi.tuna.tsinghua.edu.cn/simple
如果提示:
Complete output from command python setup.py egg_info:
Couldn't find index page for 'cffi' (maybe misspelled?)
No local packages or download links found for cffi>=1.1更新类库:
pip install cffi- 卸载:pip uninstall docker-compose
检查安装是否完成
docker-compose --version三、使用二进制安装
下载文件
sudo curl -L "https://github.com/docker/compose/releases/download/1.28.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose授权
sudo chmod +x /usr/local/bin/docker-compose创建链接
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose检查安装是否完成
docker-compose --version卸载
sudo rm /usr/local/bin/docker-compose四、离线安装
访问https://github.com/docker/compose/releases,下载 docker-compose-Linux-x86_64,我是复制链接地址,在迅雷中下载的,下载后,将docker-compose-Linux-x86_64重命名为docker-compose
将文件上传到服务器,重复1.2上的操作,省去下载部分
五、安装compose-switch
为了从旧版 docker-compose 1.xx 平滑过渡,安装compose-switch以将docker-compose ...命令转换为 Compose V2 的docker compose .... . 还要检查 V2 的--compatibility标志。详情请看https://github.com/docker/compose-switch
六、自动安装脚本
curl -fL https://raw.githubusercontent.com/docker/compose-cli/main/scripts/install/install_linux.sh | sh七、手动安装
下载 compose-switch 二进制文件
curl -fL https://github.com/docker/compose-switch/releases/download/v1.0.1/docker-compose-linux-amd64 -o /usr/local/bin/compose-switch使 compose-switch 可执行
chmod +x /usr/local/bin/compose-switch在已经安装docker-compose的基础上,即已经将二进制文件安装为
/usr/local/bin/docker-composemv /usr/local/bin/docker-compose /usr/local/bin/docker-compose-v1为docker-compose命令定义一个“替代”组
update-alternatives --install /usr/local/bin/ docker -compose docker -compose < PATH_TO_DOCKER_COMPOSE_V 1> 1 update-alternatives --install /usr/local/bin/ docker -compose docker -compose /usr/local/垃圾箱/组合开关 99
八、操作容器
编写最简单的配置:
vi docker-compose.ymlversion: '3'
services:
redis:
image: redis:6.0.12操作命令,执行命令的时候一定要与配置在同一目录:
后台启动容器:docker-compose up -d
查看容器运行情况:docker-compose ps
停止并删除容器:docker-compose down
停止并删除容器并删除volume:docker-compose down --volumes
停止启动容器:docker-compose stop;docker-compose start
docker-compose exec的使用,进入容器内部:docker-compose exec redis bash
九、多个容器管理
version: '3'
services:
nginx:
image: mycentos:nginx
network_mode: "host"
volumes:
- /home:/usr/local/nginx/html
- /var/logs/nginx/logs:/usr/local/nginx/logs
command: /usr/local/nginx/sbin/nginx -g "daemon off;"
redis:
image: mycentos:redis
ports:
- "6380:6379"快速搭建workpress个人博客
官网:https://docs.docker.com/compose/wordpress/
version: "3.9"
services:
db:
image: mysql:5.7
#通过卷标获取路径
volumes:
- db_data:/var/lib/mysql
restart: unless-stopped
#docker启动-e的参数,配置环境变量
environment:
MYSQL_ROOT_PASSWORD: somewordpress
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress
wordpress:
#当db启动完成以后才执行当前的容器
depends_on:
#这里还有link的功能,即当前容器可以通过db访问到上面的容器
- db
image: wordpress:latest
volumes:
- wordpress_data:/var/www/html
#端口映射
ports:
- "8000:80"
restart: unless-stopped
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
WORDPRESS_DB_NAME: wordpress
#卷标
volumes:
db_data: {}
wordpress_data: {}查看当前所有卷
docker volume ls
#查看卷的详细信息
docker volume inspect 卷的名称十、阿里云镜像仓库搭建
阿里云镜像仓库申请地址: https://cr.console.aliyun.com/cn-shanghai/instances/repositories 步骤: 登录阿里云Docker Registry
sudo docker login --username=穿靴子的狸花猫 192.168.1.21将镜像推送到Registry
sudo docker login --username=穿靴子的狸花猫 192.168.1.21
sudo docker tag [ImageId] 192.168.1.21/xdclassimages/mysql:[镜像版本号]
sudo docker push 192.168.1.21/xdclassimages/mysql:[镜像版本号]从Registry中拉取镜像
sudo docker pull 192.168.1.21/xdclassimages/mysql:[镜像版本号]十一、企业搭建私人镜像仓库
前置条件:需要安装docker、docker-compose、openssl以及python2.7以上
如果没有安装openssl:yum -y install openssl
Harbor离线版安装下载地址:https://github.com/goharbor/harbor/releases
上传并且解压安装包
修改配置文件:harbor.yml
修改主机名(注意空格):hostname: 192.168.0.151
修改密码(注意空格):harbor_admin_password: Harbor12345
执行脚本:sh prepare :会生成docker-compose.yml文件
执行安装命令:sh install.sh
执行命令:docker-compose ps 查看是否已经启动
访问Harbor,默认用户名admin
Docker配置使用自建仓库,默认docker只允许访问https仓库,如果要访问http仓库需要自己配置
配置允许访问http仓库,添加以下配置:vi /etc/docker/daemon.json
{
"insecure-registries":["http://192.168.0.151"]
}重启docker服务
systemctl restart docker.service
docker login后有一个登录凭证(可删除,下次需要密码):
/root/.docker/config.json (建议从安全角度出发,每次登录后进行删除)
十二、本地镜像导出和载入
俩种办法:
保存镜像
保存容器
十三、保存镜像:
#通过镜像名称或者id 输出到指定路径,-o或者>表示输出的意思
docker save 镜像名称/镜像id -o/> /home/mysql.tar
#scp复制文件到另外的服务器
scp /home/mysql.tar username@ip:/home/mysql.tar载入镜像:
#载入指定的镜像,-i或者<表示载入的意思
docker load -i/< mysql.tar十四、保存容器:
#根据容器id或者名称导出容器
docker export 974b919e1fdd -o /home/mysql-export.tar载入容器:
docker import mysql-export.tar