cd /usr/local/bin/
ll
chmod +x /usr/local/bin/docker-compose
ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
cd
docker-compose --version
1.参考教材152页生成一个mysql8容器,修改容器登录密码为123456
[root@lgz19docker composetest]# vi docker-compose.yml
[root@lgz19docker composetest]# cat docker-compose.yml
version: '3.7'
services:
mysql:
image: mysql:8
container_name: mysql8_LGZ
ports:
- 3306:3306
command:
--default-authentication-plugin=mysql_native_password
--character-set-server=utf8mb4
--collation-server=utf8mb4_general_ci
--explicit_defaults_for_timestamp=true
--lower_case_table_names=1
environment:
- MYSQL_ROOT_PASSWORD=123456
volumes:
- /etc/localtime:/etc/localtime:ro
- mysql8-data:/var/lib/mysql
volumes:
mysql8-data: null
[root@lgz19docker composetest]# docker-compose config
name: composetest
services:
mysql:
command:
- --default-authentication-plugin=mysql_native_password
- --character-set-server=utf8mb4
- --collation-server=utf8mb4_general_ci
- --explicit_defaults_for_timestamp=true
- --lower_case_table_names=1
container_name: mysql8_LGZ
environment:
MYSQL_ROOT_PASSWORD: "123456"
image: mysql:8
networks:
default: null
ports:
- mode: ingress
target: 3306
published: "3306"
protocol: tcp
volumes:
- type: bind
source: /etc/localtime
target: /etc/localtime
read_only: true
bind:
create_host_path: true
- type: volume
source: mysql8-data
target: /var/lib/mysql
volume: {}
networks:
default:
name: composetest_default
volumes:
mysql8-data:
name: composetest_mysql8-data
[root@lgz19docker composetest]#
[root@lgz19docker composetest]# docker-compose up -d
[+] Running 13/13
⠿ mysql Pulled 130.4s
⠿ 6f28985ad184 Already exists 0.0s
⠿ e7cd18945cf6 Pull complete 0.6s
⠿ ee91068b9313 Pull complete 9.1s
⠿ b4efa1a4f93b Pull complete 9.2s
⠿ f220edfa5893 Pull complete 9.2s
⠿ 74a27d3460f8 Pull complete 16.8s
⠿ 2e11e23b7542 Pull complete 16.8s
⠿ fbce32c99761 Pull complete 16.8s
⠿ 08545fb3966f Pull complete 128.3s
⠿ 5b9c076841dc Pull complete 128.4s
⠿ ef8b369352ae Pull complete 128.4s
⠿ ebd210f0917d Pull complete 128.4s
[+] Running 3/3
⠿ Network composetest_default Created 0.0s
⠿ Volume "composetest_mysql8-data" Created 0.0s
⠿ Container mysql8_LGZ Started 1.1s
[root@lgz19docker composetest]#
[root@lgz19docker composetest]# docker-compose ps
NAME COMMAND SERVICE STATUS PORTS
mysql8_LGZ "docker-entrypoint.s…" mysql running 0.0.0.0:3306->3306/tcp, :::3306->3306/tcp
[root@lgz19docker composetest]#
2.在容器中创建一个数据库名为mysql8XXX,如下,在navicate客户端中访问此容器,创建一上数据表,测试外部和容器内部的连通性。
docker exec -it mysql8_LGZ mysql -uroot -p123456
create database mysql8LGZku;
use mysql8LGZku;
create table student(id char(10) primary key,name char(20) not null,sex char(2) not null, birth date);
insert into student values('20234660','刘国振','男','2000-09-13');
insert into student values('20234663','张三','女','2001-03-24');
mysql> select * from mysql8LGZku.student;
+----------+------+-----+------------+
| id | name | sex | birth |
+----------+------+-----+------------+
| 20234660 | | | 2000-09-13 |
| 20234663 | | | 2001-03-24 |
+----------+------+-----+------------+
2 rows in set (0.00 sec)
mysql>

【中文无法显示】

3.继续修改compose文件,修改root用户的登录密码为111111,对外映射端口为3309
docker-compose stop
docker-compose down --volumes
[root@lgz19docker composetest]# vi docker-compose.yml
[root@lgz19docker composetest]# cat docker-compose.yml
version: '3.7'
services:
mysql:
image: mysql:8
container_name: mysql8_LGZ2
ports:
- 3309:3306
command:
--default-authentication-plugin=mysql_native_password
--character-set-server=utf8mb4
--collation-server=utf8mb4_general_ci
--explicit_defaults_for_timestamp=true
--lower_case_table_names=1
environment:
- MYSQL_ROOT_PASSWORD=111111
volumes:
- /etc/localtime:/etc/localtime:ro
- mysql8-data:/var/lib/mysql
volumes:
mysql8-data: null
[root@lgz19docker composetest]#
docker-compose config
docker-compose up -d
docker-compose ps
docker ps -a

4.进入容器内部创建一个数据库和一个数据表进行测试
docker exec -it mysql8_LGZ2 mysql -uroot -p111111
create database mysql8LGZ2ku;
use mysql8LGZ2ku;
create table student(id char(10) primary key,name char(20) not null,sex char(2) not null, birth date);
insert into student values('20234660','刘国振','男','2000-09-13');
insert into student values('20234663','张三','女','2001-03-24');
mysql> select * from mysql8LGZ2ku.student;
5.在navicate中使用3309端口连接,查看是否可以看到上述第4步的数据表。

739

被折叠的 条评论
为什么被折叠?



