1. 단계
- 1. mysql 미러 검색
- 2. mysql 이미지 가져오기
- 3. 컨테이너 생성
- 4. 컨테이너에서 mysql 작동
2. 설명
- 1. 컨테이너의 네트워크 서비스는 외부 시스템과 직접 통신할 수 없습니다.
- 2. 컨테이너에 배포된 mysql 포트 3306은 외부 머신과 호스트 간에 직접 통신할 수 없습니다.
- 3. 외부 기기와 호스트 기기 간의 직접 통신
- 4. 호스트와 컨테이너가 직접 통신할 수 있습니다.
- 5. 컨테이너의 네트워크 서비스가 외부 머신에서 액세스해야 하는 경우 컨테이너에서 서비스를 제공하는 포트를 호스트 머신의 포트에 매핑할 수 있습니다.
- 6. 외부 머신이 호스트 머신의 포트에 접근하여 컨테이너의 서비스에 간접적으로 접근
3. 예시
- 1. mysql 미러 검색
docker search mysql
- 2. mysql 이미지 가져오기
docker pull mysql:5.6
- 3. 컨테이너 생성, 포트 매핑, 디렉토리 매핑 설정
# 在/root目录下创建mysql目录用于存储mysql数据信息
mkdir ~/mysql
cd ~/mysql
주문 실행:
docker run -id \
-p 3307:3306 \
--name=my_mysql \
-v $PWD/conf:/etc/mysql/conf.d \
-v $PWD/logs:/logs \
-v $PWD/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
mysql:5.6
매개변수 설명:
1.-p 3307:3306:将容器的3306端口映射到宿主机的3307端口
2.-v $PWD/conf:/etc/mysql/conf.d:将主机当前目录下的conf/my.cnf挂载到容器的/etc/mysql/my.cnf。 配置的目录
3.-v $PWD/logs:/logs:将主机当前目录下的logs目录挂载到容器的/logs。 日志的目录
4.-v $PWD/data:/var/lib/mysql:将主机当前目录下的data目录挂载到容器的/var/lib/mysql。 数据的目录
5.-e MYSQL_ROOT_PASSWORD=123456:初始化root用户的密码, e是env环境的意思
- 4. 컨테이너를 입력
docker exec -it my_mysql /bin/bash
// my_mysql是容器名
- 5. mysql에 로그인
mysql -u root -p
// 输入密码 123456
-
6. 로그인 스크린샷
-
7. 종료
exit // 退出mysql
exit // 退出容器