docker-compose的使用

环境安装

docker环境的安装与配置

请参考https://blog.csdn.net/wei242425445/article/details/88042915

docker-compose.yaml文件构建

编写.env配置文件

# mysql database
MYSQL_EXTRA_USER=userone
MYSQL_PASSWORD=12345678

编写docker-compose.yaml文件

version: '3'

services:
  mysql:
    network_mode: "host"
    environment:
      MYSQL_ROOT_PASSWORD: ${MYSQL_PASSWORD}
      MYSQL_USER: ${MYSQL_EXTRA_USER}
      MYSQL_PASS: ${MYSQL_PASSWORD}
    image: "docker.io/mysql:latest" 
    restart: always
    volumes:
      - "/home/heyw/docker_config/mysql/db:/var/lib/mysql"
      - "/home/heyw/docker_config/mysql/conf/my.cnf:/etc/my.cnf"
      - "/home/heyw/docker_config/mysql/init:/docker-entrypoint-initdb.d/"
    ports:
      - 3306:3306

  db_adminer:
    image: adminer
    restart: always
    ports:
      - 8080:8080

编写mysql配置文件

目录结构如下:
heyw@ubuntu:~/docker_config$ tree
.
└── mysql
    ├── conf
    │   └── my.cnf
    ├── db
    └── init
        └── init.sql

4 directories, 2 files

编写my.cnf文件

[mysqld]
user=mysql
default-storage-engine=INNODB
character-set-server=utf8
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8

编写init.sql文件

use mysql;
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '12345678';
create database test;
use test;

使用Makefile统一管理

run:
	docker-compose build
	docker-compose up

off:
	docker-compose down

restart:
	docker-compose restart

clean:
	sudo rm -rf /home/heyw/docker_config/mysql/db/*

通过网页访问数据库

http://localhost:8080
在这里插入图片描述

常用指令

根据docker-compose.yaml构建环境

docker-compose build

启动

# 如果加上-d,那么会在后台运行
docker-compose up -d

停止并移除容器

heyw@ubuntu:~/code/go/demo$ docker-compose down
Stopping demo_mysql_1 ... done
Removing demo_mysql_1 ... done

重启

heyw@ubuntu:~/code/go/demo$ docker-compose restart
Restarting demo_mysql_1 ... done

查看进程

heyw@ubuntu:~/code/go/demo$ docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
127e7c8bb5e3        mysql:latest        "docker-entrypoint.s…"   3 minutes ago       Up 3 minutes                            demo_mysql_1

查看容器日志

# some_mysql为容器的名称
heyw@ubuntu:~/code/go/demo$ docker logs some_mysql
Initializing database

查看容器运行状态

heyw@ubuntu:~/code/go/demo$ docker-compose ps
    Name                 Command             State   Ports
----------------------------------------------------------
demo_mysql_1   docker-entrypoint.sh mysqld   Up           

查看所有的镜像

heyw@ubuntu:~/code/go/demo$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
consul              latest              dfe3bf9e6fe6        4 days ago          116MB
mysql               latest              2151acc12881        8 days ago          445MB
postgres            latest              53912975086f        13 days ago         312MB
redis               latest              598a6f110d01        2 weeks ago         118MB
hello-world         latest              fce289e99eb9        7 months ago        1.84kB

删除镜像

heyw@ubuntu:~/code/go/demo$ docker rmi microhq/micro:latest 
Untagged: microhq/micro:latest
Untagged: microhq/micro@sha256:00d20c1683ded99e52814625c9e551fcfe1918fa319d74686858bb3a02206f7d
Deleted: sha256:e7083f72c9832aaca8ba76cfc7e5e6cc1e650b2781e5e457cdb1a142d561e92f
Deleted: sha256:5f5d0608b05865e3d87b0f3d7a8d2c991d9b8ad21e982424b1b91afc68f5750c
Deleted: sha256:564c87d03169053af79674a999ecee247daeeecdbf11baa8201aa6aeaf4fb83e
Deleted: sha256:503e53e365f34399c4d58d8f4e23c161106cfbce4400e3d0a0357967bad69390

停止与删除单个容器

heyw@ubuntu:~/code/go/demo$ docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                               NAMES
7f1377882c73        mysql               "docker-entrypoint.s…"   8 minutes ago       Up 8 minutes        33060/tcp, 0.0.0.0:3307->3306/tcp   root
heyw@ubuntu:~/code/go/demo$ docker stop 7f1377882c73
7f1377882c73
heyw@ubuntu:~/code/go/demo$ docker rm 7f1377882c73
7f1377882c73

停止所有的容器

heyw@ubuntu:~/code/go/mps/MPS-backend/mps/map-service$ docker stop $(docker ps -aq)

cff3f351c789

删除所有的容器

heyw@ubuntu:~/code/go/mps/MPS-backend/mps/map-service$ docker rm $(docker ps -aq)
cff3f351c789
c9f51c8577b1
31e2e8546294
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值