day106 docker compase

day106 docker compase

docker-compose

  • 对比于docker命令和docker-compose写的ymal文件

纯命令模式

docker run \
--name docker-jenkins \
--restart=always \ 
-p 8080:8080  \
-p 50000:50000 \
--privileged=true \
--user root \
-v /usr/bin/docker:/usr/bin/docker \
-v /var/run/docker.sock:/var/run/docker.sock \
-v  /linux0224_data/jenkins/:/var/jenkins_home \
-d       jenkins/jenkins

云原生时代,基于容器化的部署,以后都是yaml的语法

描述及应用,描述及服务

云原生运维,都是yaml的工程师

version: '3'     # yaml语法版本,版本越高,支持字段就越高
services:		  # 定义服务
  myjenkins:		# 起个名字这个改 叫做myjenkins
    image: 'jenkins/jenkins:latest' # 镜像名
    container_name: myjenkins  # 运行的容器名字 =--name
    restart: always   # 容器的重启策略
    privileged: true	#特权化的执行容器
    user: root		# 定义一个容器的执行用户
    ports:	# 写一个 - 代表的是写一个列表
      - '8080:8080'  
      - '50000:50000'
    volumes:
      - '/data/jenkins:/var/jenkins_home'
      - '/var/run/docker.sock:/var/run/docker.sock'
      - '/usr/bin/docker:/usr/bin/docker'
      - '/root/.ssh:/root/.ssh'

回顾yaml和json的关系

说yaml写json

yaml的第一大的数据类型,字典类型{"name":"linuxyzk666"}

json 转yaml
json----->

{"name":"linuxyzk666"}

ymal----->
name: "linuxyzk"


# 特殊类型--列表类型
["yzk","xiaoming","hello"]


- "yzk"
- "xiaoming"
- "hello"



嵌套
{
"name":[
	"yzk",
	"hello",
	"jjbong"
]
}


json --> ymal
name:
  - yzk
  - hello
  - jjbong
容器信息的yaml。json

{
	"nginx-contaioner":  {
	
			"ports": ["80","81"],
			"volumes":  ["/var/log/nginx/","/opt/"]
	}
}


# 转成yaml

nginx-contaioner:
  ports:
    - '80'
    - '81'
  volumes:
    - /var/log/nginx/
    - /opt/


练习json,手写yaml

yaml的空格数量必须是严格的

json不关心空格,根据元素,根据逗号,去理解json的变量的关系

{
"NetworkMode": "default",
      "PortBindings": {
        "50000/tcp": [
          {
            "HostIp": "",
            "HostPort": "50000"
          }
        ],
        "8080/tcp": [
          {
            "HostIp": "",
            "HostPort": "8080"
          }
        ]
      },
      "RestartPolicy": {
        "Name": "no",
        "MaximumRetryCount": 0
      }

}
NetworkMode: default
PortBindings:
  50000/tcp:
    - HostIp: ""
      HostPort: "50000"
  8080/tcp:
    - HostIp: ""
      HostPort: "8080"
RestartPolicy:
  Name: "no"
  MaximumRetryCount: 0

jenkins-compose的语法

# yaml根据官网提供的一些字段,等于docker run 命令的参数
# --user =
# --restart =
# privileged =
-p 80:80
-p 5000:5000
-v
-v  这里映射容器的目录地址




version: '3'      # yaml语法版本,版本越高,支持字段就越多,得看官网文档,有有哪些字段语法
services:		   #定义服务,名字
  myjenkins:		# myenkins服务
    image: 'jenkins/jenkins:latest'  # 镜像名
    container_name: myjenkins   # 你运行容器的名字 
    restart: always   # 容器重启策略
    privileged: true		# 特权化运行容器
    user: root		# 制定容器进程执行用户 
    ports:
      - '8080:8080'  
      - '50000:50000'
    volumes:
      - '/linux0224_data/jenkins:/var/jenkins_home'
      - '/var/run/docker.sock:/var/run/docker.sock'
      - '/usr/bin/docker:/usr/bin/docker'
      - '/root/.ssh:/root/.ssh'
docker-comepose 以前的版本,python写的工具,读取yaml文件执行yaml

1.先安装
2. 写docker-compose.yaml
3.运行docker-compose.yaml 的文件


1. 按装docker-comepose
yum install docker-compose 
[root@docker-100 ~]# cat /usr/bin/docker-compose 
#!/usr/bin/python3.6
# EASY-INSTALL-ENTRY-SCRIPT: 'docker-compose==1.18.0','console_scripts','docker-compose'
__requires__ = 'docker-compose==1.18.0'
import re
import sys
from pkg_resources import load_entry_point

if __name__ == '__main__':
    sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
    sys.exit(
        load_entry_point('docker-compose==1.18.0', 'console_scripts', 'docker-compose')()
    )

# 发现是一个旧版本的python脚本的docker-compose

我们也来写一个命令

[root@docker-100 ~]# vim /usr/bin/ji
[root@docker-100 ~]# 
[root@docker-100 ~]# 
[root@docker-100 ~]# 
[root@docker-100 ~]# chmod +x /usr/bin/ji 
[root@docker-100 ~]# 
[root@docker-100 ~]# 
[root@docker-100 ~]# ji
下午打起精神,开始学习,加油!!!

写一个ymal的docker容器

vim docker-compose.yml

# 2. 写docker-compose.yml
[root@docker-200 ~]#vim docker-compose.yml 

先检查yml的语法是否对,没东西输出,表示正确
# 直接对当前目录下的 yaml进行语法校验
[root@docker-200 ~]#docker-compose config -q 


# 3.运行该docker-compose.yml


[root@docker-200 ~]#docker-compose up -d


      
# 容器内也获取宿主机的 ssh公私钥

# 容器内想免密 ssh操作xx机器 

posted @ 2025-05-24 16:14  国家一级冲浪yzk  阅读(14)  评论(0)    收藏  举报