Docker & docker-compose

Docker & docker-compose

[TOC]

Docker

国内镜像加速配置

  1. DaoCloud

    目前好像不太行了 - 2020年8月2日

  2. 创建或修改 /etc/docker/daemon.json 文件

    {
        "registry-mirrors": ["https://registry.docker-cn.com"]
    }
    

    docker中国 https://registry.docker-cn.com

    网易:http://hub-mirror.c.163.com

    中科大:https://docker.mirrors.ustc.edu.cn


    阿里云容器服务
    https://cr.console.aliyun.com/
    首页点击”创建我的容器镜像“,得到一个专属的镜像加速地址

基本命令

# 安装
sudo apt install docker.io
sudo docker images    #列出所有的本地镜像
sudo docker ps -a     #列出所有的本地容器
sudo docker run       #运行容器
    # -it 互动模式 
    # -d 离线模式  
    # --name  指定名称 
    # --net  netname 指定net 
    # --restart=always  服务器重启跟随启动 
    # -e  ename 指定环境变量 
    # -p  指定端口映射 
    # -P  随机端口映射
sudo docker start   #启动已经存在的容器
sudo docker stop     #停止指定的容器
sudo docker pull     #拉取镜像
sudo docker rmi      #删除镜像
sudo docker image prune -af #删除所有未使用镜像
sudo docker rm       #删除容器 参数为容器名字或容器ID
    # $(sudo docker ps -aq) 删除所有容器
sudo docker search   #查找镜像
sudo docker exec -it #以互动模式进入容器
sudo docker logs -f  #查看指定容器的日志
sudo docker build -t name:latest . #在当前目录根据Dockerfile创建名为name的镜像

网络相关

# 默认为bridge模式
sudo docker network create
sudo docker network connect
sudo docker network disconnect
sudo docker network ls
sudo docker network rm
sudo docker network inspect

Docker部署常用应用命令

# 新建net
sudo docker network create mynet
# 部署MySQL
# 创建MySQL容器
sudo docker run --name mysql --net mynet -e MYSQL_ROOT_PASSWORD=123 -p 3307:3306 -d mysql:5.7
# 进入MySQL容器
sudo docker exec -it mysql bash
# 赋权
grant all on *.* to 'root'@'%' identified by '123';
# 刷新权限
flush privileges;
# 部署zookeeper
sudo docker run -d --name zookeeper --net mynet -p2181:2181 -p2888:2888 -p3888:3888 zookeeper
# 部署dubboadmin
# 一定注意加反斜杠
sudo docker run -d --name dubbo-admin --net mynet -p9600:8080 -e DUBBO_REGISTRY="zookeeper:\/\/zookeeper:2181" -e DUBBO_ROOT_PASSWORD=root riveryang/dubbo-admin
# 部署sbjar
sudo docker run -d --name core -p8081:8081 --net mynet core
sudo docker run -d --name store -p8080:8080 --net mynet store

Docker打包镜像

# 打包
sudo docker save -o filename imagename
# 导入
sudo docker load < filename

Dockerfile

# 基础镜像
FROM openjdk:8-jdk-alpine

# 设置工作目录
WORKDIR /tmp

# 将当前目录jar文件拷贝到镜像中名为app.jar
ADD *.jar app.jar

# springboot使用的配置文件
ENV spring.profiles.active=docker

# 进入时执行的命令,jvm设置为东八区
ENTRYPOINT ["java","-Duser.timezone=GMT+8","-jar","/tmp/app.jar"]

docker-compose

安装

可以在Github查看版本以及安装命令

# 安装
sudo curl -L https://github.com/docker/compose/releases/download/1.23.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
# 赋权
sudo chmod +x /usr/local/bin/docker-compose

docker-compose.yml

version: '3.7'
services:
    zookeeper:
        image: zookeeper
        container_name: zookeeper
        ports: 
            - 2181:2181
            - 2888:2888
            - 3888:3888
        networks: 
            - mynet
    dubbo-admin:
        image: riveryang/dubbo-admin
        container_name: dubbo-admin
        environment:
            - DUBBO_REGISTRY=zookeeper:\/\/zookeeper:2181
            - DUBBO_ROOT_PASSWORD=root
        ports:
            - 9600:8080
        networks:
            - mynet
        depends_on:
            - zookeeper
    mysql:
        image: mysql:5.7
        container_name: mysql
        environment:
            - MYSQL_ROOT_PASSWORD=123
        ports: 
            - 3306:3306
        networks: 
            - mynet
    core: 
        build: ./core         #Dockerfile所在目录,相对或绝对路径都可以
        image: core:latest    #构建的镜像名字
        container_name: core
        networks: 
            - mynet
        depends_on:           #依赖容器会先启动
            - zookeeper
            - mysql
    store: 
        build: ./store
        image: store:latest
        container_name: store
        ports: 
            - 80:80
            - 443:443
        networks: 
            - mynet
        depends_on:
            - core
networks: 
    mynet:
        driver: bridge

启动

# 命令行需要在docker-compose.yml目录
sudo docker-compose up --build -d
     #-d       后台运行
     #--build  不管镜像是否存在都要重新构建

docker-compose file version和docker version关系

Compose file format Docker Engine release
3.7 18.06.0+
3.6 18.02.0+
3.5 17.12.0+
3.4 17.09.0+
3.3 17.06.0+
3.2 17.04.0+
3.1 1.13.1+
3.0 1.13.0+
2.4 17.12.0+
2.3 17.06.0+
2.2 1.13.0+
2.1 1.12.0+
2.0 1.10.0+
1.0 1.9.1.+
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,117评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,328评论 1 293
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,839评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,007评论 0 206
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,384评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,629评论 1 219
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,880评论 2 313
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,593评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,313评论 1 243
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,575评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,066评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,392评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,052评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,082评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,844评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,662评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,575评论 2 270

推荐阅读更多精彩内容