文章目录
环境安装
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