DockerDocker-compose的安装及部署
Docker&Docker-compose的安装及配置
⼀、Docker的安装与配置
安装基于Linux CentOS_7.9
cat /etc/redhat-release  # 查看CentOS版本
docker版本20.10.12
docker --version        # 查看docker版本
1.1 Docker介绍
Docker 是⼀个开源的应⽤容器引擎,基于 Go 语⾔ 并遵从 Apache2.0 协议开源。Docker 是⼀个⽤于开发,交付和运⾏应⽤程序的开放平台。Docker 能够将应⽤程序与基础架构分开,从⽽可以快速交付软件。Docker 可以让开发者打包他们的应⽤以及依赖包到⼀个轻量级、可移植的容器中,然后发布到任何流⾏的 Linux 机器上,也可以实现虚拟化。
1.2 Docker的安装
1.⾸先卸载系统中旧版本的docker
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
2.安装依赖包
yum install -y yum-utils device-mapper-persistent-data lvm2
3.安装gcc
yum install -y gcc gcc-c++
4.设置stable仓库(可选国内源地址,这⾥使⽤的是阿⾥云)
yum-config-manager --add-repo  mirrors.aliyun/docker-ce/linux/po
5.更新yum索引
yum makecache fast
6.安装docker-ce
yum install docker-ce docker-ce-cli containerd.io
7.启动docker并进⾏查看
systemctl start docker
ps -ef |grep docker
8.使⽤docker命令运⾏⼀个镜像(这⾥以hello world为例,如果没有则会⾃动下载)
docker run hello-world
1.3 Docker常⽤命令
1.拉取镜像(可以在docker hub上搜索镜像,镜像名后跟版本号或者最后发⾏版本)
docker pull <;镜像名:tag>
# 例如以下代码
docker pull mysql:latest
2.删除容器
docker rm<;容器名 or ID>
3.查看容器⽇志
docker logs -f <;容器名 or ID>
4.查看正在运⾏的容器
docker ps
docker ps -a # 为查看所有的容器,包括已经停⽌的。
5.删除所有容器
docker rm$(docker ps -a -q)
6.停⽌、启动、杀死指定容器
docker start <;容器名 or ID># 启动容器
docker stop <;容器名 or ID># 启动容器
docker kill<;容器名 or ID># 杀死容器
7.查看所有镜像
docker images
8.后台运⾏
docker run -d 镜像名
# 例如以下代码
docker run -d -p 3306:3306 --name mysql mysql
9.暴露端⼝
# ⼀共有三种形式进⾏端⼝映射
docker -p ip:hostPort:containerPort # 映射指定地址的主机端⼝到容器端⼝
# 例如:docker -p 127.0.0.1:3306:3306 映射本机3306端⼝到容器的3306端⼝
docker -p ip::containerPort # 映射指定地址的任意可⽤端⼝到容器端⼝
# 例如:docker -p 127.0.0.1::3306 映射本机的随机可⽤端⼝到容器3306端⼝
docer -p hostPort:containerPort # 映射本机的指定端⼝到容器的指定端⼝
# 例如:docker -p 3306:3306 # 映射本机的3306端⼝到容器的3306端⼝
10.映射数据卷
docker -v /home/data:/opt/data # 这⾥/home/data 指的是宿主机的⽬录地址,后者则是容器的⽬录地址
注意:−p(⼩写)容器、−P(⼤写)随机、−i交互、−d后台、−t终端1.4 Docker卸载
1.删除安装包:
yum remove docker-ce docker-ce-cli containerd.io
2.删除镜像、容器、配置⽂件等内容:
rm -rf /var/lib/docker
rm -rf /var/lib/containerd
⼆、 Docker-compose的安装与配置
2.1 Docker-Compose介绍
Docker Compose是⼀个⽤来定义和运⾏复杂应⽤的Docker⼯具。⼀个使⽤Docker容器的应⽤系统,通常由多个容器组成,如果每个微服务都要⼿动启停,那么效率之低,维护量之⼤可想⽽知,Docker Compose 是 Docker 官⽅编排(Orchestration)项⽬之⼀,负责快速的部署分布式应⽤。
使⽤ Docker Compose 可以轻松、⾼效的管理容器, Compose 通过⼀个配置⽂件来管理多个Docker容器,在配置⽂件中,所有的容器通过services来定义,然后使⽤docker-compose脚本来启动,停⽌和重启应⽤,和应⽤中的服务以及所有依赖服务的容器,使⽤⼀个命令,就可以从 YML ⽂件配置中创建并启动所有服务,⾮常适合组合使⽤多个容器进⾏开发的场景。
2.2 Docker-Compose和Docker兼容性
Compose file format Docker Engine release
Compose specification19.03.0+
3.819.03.0+
3.718.06.0+
3.618.02.0+
3.517.12.0+
3.417.09.0+
3.317.06.0+
3.217.0
4.0+
3.1  1.13.1+
3.0  1.13.0+
2.417.12.0+
2.317.06.0+
2.2  1.1
3.0+
2.1  1.12.0+
2.0  1.10.0+
2.3 Dcoker-Compose的安装
1.运⾏以下命令以下载 Docker Compose
curl -L "github/docker/compose/releases/download/v2.2.3/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
若是github访问太慢,可以⽤daocloud下载
curl -L "get.daocloud.io/docker/compose/releases/download/v2.2.3/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose 2.添加docker-compose的读写执⾏权限
chmod -R 777 /usr/local/bin/docker-compose
3.查看docker-compose是否安装成功
docker-compose --version
2.4 Docker-Compose卸载
以⼆进制包⽅式安装的,删除⼆进制⽂件即可:
rm /usr/local/bin/docker-compose
2.5 Docker-Compose常⽤命令
1.执⾏docker-compose [COMMAND] --help 或者 docker-compose help [COMMAND]可以查看具体某个命令的使⽤格式。如下:docker-compose --help
2.命令参数介绍:
-f, --file FILE 指定使⽤的 Compose 模板⽂件,默认为 l,可以多次指定;
-p, --project-name NAME 指定项⽬名称,默认将使⽤所在⽬录名称作为项⽬名;
–x-networking 使⽤ Docker 的可拔插⽹络后端特性;
–x-network-driver DRIVER 指定⽹络后端的驱动,默认为 bridge;
–verbose 输出更多调试信息;
-v, --version 打印版本并退出;
3. 常⽤命令
docker-compose up      #创建并启动容器
docker-compose up -d    #创建并后台启动容器
docker-compose ps#查看当前compose进程
docker-compose start    #启动容器
docker-compose stop    #关闭容器
docker-compose down    #关闭并移除容器
docker-compose logs    #查看容器⽇志
docker-compose down  --volumes #关闭并移除容器并删除容器清除存储
docker-compose pull    #拉取服务依赖的镜像
docker-compose restart  #重启项⽬中的服务
docker-compose rm#删除所有(停⽌状态的)服务容器
三、 Docker-Compose模板⽂件
3.l模板介绍
Compose允许⽤户通过⼀个l模板⽂件(YAML 格式)来定义⼀组相关联的应⽤容
器为⼀个项⽬(project)。Compose模板⽂件是⼀个定义服务、⽹络和卷的YAML⽂件。Compose模板⽂件默认路径是当前⽬录下的l,可以使⽤.yml或.yaml作为⽂件扩展名。Docker-Compose标准模板⽂件应该包含version、services、networks 三⼤部分,最关键的是services和networks两个部分。
以本地redis的docker-compose配置⽂件为例:
version:'3'
services:
redis:
docker重启容器命令image: redis
container_name: redis
volumes:
- /home/docker/redis/data:/data
-
/home/docker/redis/f:/etc/f
- /home/docker/redis/logs:/logs
command: redis-server /etc/f
ports:
- 6379:6379
1、image
image是指定服务的镜像名称或镜像ID。如果镜像在本地不存在,Compose将会尝试拉取镜像。
services:
redis:
image: redis
2、command
使⽤command可以覆盖容器启动后默认执⾏的命令。
command: bundle exec thin -p 3000
3、container_name
Compose的容器名称格式是:<;项⽬名称><;服务名称><;序号>
可以⾃定义项⽬名称、服务名称,但如果想完全控制容器的命名,可以使⽤标签指定:
container_name: redis
4、ports
ports⽤于映射端⼝的标签。
使⽤HOST:CONTAINER格式或者只是指定容器的端⼝,宿主机会随机映射端⼝。
ports:
- "3000"
-
"8000:8000"
- "49100:22"
- "127.0.0.1:8001:8001"
当使⽤HOST:CONTAINER格式来映射端⼝时,如果使⽤的容器端⼝⼩于60可能会得到错误得结果,因为YAML将会解析xx:yy这种数字格式为60进制。所以建议采⽤字符串格式。
5、volumes
挂载⼀个⽬录或者⼀个已存在的数据卷容器,可以直接使⽤ [HOST:CONTAINER]格式,或者使⽤[HOST:CONTAINER:ro]格式,后者对于容器来说,数据卷是只读的,可以有效保护宿主机的⽂件系统。
Compose的数据卷指定路径可以是相对路径,使⽤ . 或者 … 来指定相对⽬录。
数据卷的格式可以是下⾯多种形式:

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。