Docker 다운로드
1. docker 다운로드 링크 : https://www.docker.com/get-started/
2. 다운로드가 다 되면 wsl --update 를 하라는 경고문이 뜨는데 cmd 켜준 후 바로 진행.
3. 로그인
👁🗨 Docker를 다운로드 하면 작업관리자에 Vemmem가 생긴다. Docker에 약 4GB의 메모리가 주어진다.
👁🗨 Docker에서는 Image를 다운받아서 실행할 수 있는데 다운 받는 것은 쉽게 말하면, CD게임이라고 생각하면 된다.
요즘에는 CD드라이브가 없기 때문에 CD가 .iso 파일로 다운 받을 수 있게 변했다.
즉, .iso파일을 다운 받는다고 생각하면 된다.
✅ docker hub 에 들어가서 docs를 보면서 진행하면 여러가지 모듈들을 전부 설치없이 편하게 사용이 가능.
Nginx Image 사용
Nginx Image : 외부ip로 들어왔을 때 화면 보여주기
docker run nginx
Nginx Image가 없으면, 다운받는다.
Nginx에 Image에 등록이 되고, Containers에서 실행도 된다.
Contatiner에서 실행이 되면 주소창에 'localhost'를 입력하면 nginx default page가 나온다.
👁🗨 port 변경이 필요하면, Images에서 하면 된다.
MySQL 사용
MySQL Docs : https://hub.docker.com/_/mysql
1. mysql 다운로드
docker run mysql
You need to specify one of the following as an environment variable:
- MYSQL_ROOT_PASSWORD
- MYSQL_ALLOW_EMPTY_PASSWORD // password를 설정X
- MYSQL_RANDOM_ROOT_PASSWORD
// 환경변수 안에 어떤 값이든 담아주어야 동작합. 실제로 해당 값이 영향X.
// random 옵션은 아래와 같이 실행 로그에서 비밀번호알려줌.
image 다운은 받았지만 container에서 실행을 할 때 필요한 옵션을 주지 않아서 에러가 난다.
mysql 컨테이너는 root 유저의 password를 어떻게 할 것인지에 대해 옵션을 명시해야 한다.
셋 중 하나를 선택해 컨테이너 안에 환경변수로 넘겨 준다.
docker run --name mysql -p 3307:3306 -e MYSQL_ROOT_PASSWORD=1234 -d mysql
🟢 Docker 명령어
|
정상 실행된다면 컨테이너의 ID 가 출력(-d 옵션때문)
2. MySQL Workbench와 연결
3. 확인
docker ps 현재 실행중인 프로세스
잘 되고 있다.
🟢 Docker 명령어
|
4. docker와 mysql 공유 폴더 생성과 연결
#1 공유폴더 만들기(폴더명 mysql2에 연결할 것임)
#2 만들기
위에서 만들어 둔 것이 있다면, docker에서 mysql 삭제 후 진행하자.
docker run --name mysql -p 3307:3306 -e MYSQL_ROOT_PASSWORD=1234 -v C:\tmp\mysql2:/var/lib/mysql -d mysql
🟢 Docker 명령어
|
#3 MySQL에서 데이터 넣기
create database test;
use test;
create table a (id int auto_increment primary key);
insert into a values();
select * from a;
저장된 데이터
id |
1 |
그럼 mysql2에 실행된 data들이 저장된다.
⭐ 이렇게 실행하면 ysql 에 data 를 생성하고 해당 container 와 image 를 전부 삭제하고, 다시 다운받아서 run 했을 시 data 가 사라지지 않고 복구할 수 있다.
경우1. docker 에서 mysql 삭제했을 때
경우2. docker에 mysql 다시 설치했을 때
docker run --name mysql -p 3307:3306 -e MYSQL_ROOT_PASSWORD=1234 -v C:\tmp\mysql2:/var/lib/mysql -d mysql
참고링크
https://velog.io/@dm911/docker-hub-%ED%99%9C%EC%9A%A9%ED%95%B4%EB%B3%B4%EA%B8%B0
https://kimjingo.tistory.com/55
'공부 > Infra' 카테고리의 다른 글
[Jenkins] CI/CD, Pipe Line 작성 및 설정, 빌드자동화 (1) | 2023.10.10 |
---|---|
[CI/CD] CI/CD란 (0) | 2023.10.10 |
[linux] 프로그램 설치(git, node, java, mysql) (0) | 2023.10.06 |