기본 명령어 정리
docker run -it ubuntu:14.04- 이미지를 받음과 동시에 컨테이너 생성 후
cli진입
- 이미지를 받음과 동시에 컨테이너 생성 후
docker pull centos:7- 이미지를 받는 또다른 방법
docker create -i -t --name mycentos centos:7- 컨테이너 빌드
docker start name- 컨테이너 실행
docker attach name- 내부로 들어가기
- 내부 진입에서 빠져나오는 방법 2가지
exit: 컨테이너 종료 후 빠져나옴Ctrl+P,Q: 컨테이너를 종료 시키지 않고 내부에서만 빠져나옴
docker ps- 실행중인 컨테이너 목록 확인
docker ps -a- 전체 컨테이너 목록 확인
docker rename before after- 컨테이너 이름 변경
docker rm name- 컨테이너 삭제, 실행중인 컨테이너는 중지 후 삭제
docker rm -f name- 실행중인 컨테이너 삭제
docker stop name- 컨테이너 중지
컨테이너 애플리케이션 구축
docker run -i -t --name mywebserver -p 80:80 ubuntu:14.04-p: 컨테이너의 포트를 호스트의 포트와 바인딩[호스트의 포트]:[컨테이너의 포트]
wordpress+mysqlmysql설치docker run -d --name wordpressdb -e MYSQL_ROOT_PASSWORD=password -e MYSQL_DATABASE=wordpress mysql:5.7
wordpress설치docker run -d -e WORDPRESS_DB_PASSWORD=password --name wordpress --link wordpressdb:mysql -p 80 wordpress:wq
1
2
3
4
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
bbe628b7632a wordpress "docker-entrypoint.s…" 11 seconds ago Up 10 seconds 0.0.0.0:55318->80/tcp wordpress
af37fb7c59ea mysql:5.7 "docker-entrypoint.s…" About a minute ago Up About a minute 3306/tcp, 33060/tcp wordpressdb
b85463cd9339 ubuntu:14.04 "/bin/bash" 6 minutes ago Up 6 minutes 0.0.0.0:80->80/tcp mywebserver
docker port name- 컨테이너의 연결 포트를 확인 가능
error establishing a database connection
참고 : 해당 도커 예제는
시작하세요! 도커/쿠버네티스책으로 진행.mysql,wordpress,ubuntu설치하여 진행중 최종 wordpress 실행시error establishing a database connection에러가 발생.
wordperss내부로 진입하여wp-config.php파일 확인 결과 설정된db설정이 잘못되어 수정후 진행(wordpressdb 정보로)docker exec -it wordpress /bin/bash
- 추후 컨테이너로 올릴때에는
docker run -d -e WORDPRESS_DB_NAME=wordpress -e WORDPRESS_DB_USER=root -e WORDPRESS_DB_PASSWORD=password --name wordpress_hostvolume --link wordpressdb_hostvolume:mysql -p 80 wordpress- 해당 설정 사용, DB 설정에 필요한 환경변수를 모두 넣어주어서 실행
docker volume, 호스트 볼륨 공유 방식
- 위에서 생성된
wordpress와database의 데이터들은 컨테이너 삭제시 없어진다는 단점이 있음. 어떻게 하면 좋을까?volume사용.
docker run -d --name wordpressdb_hostvolume -e MYSQL_ROOT_PASSWORD=password -e MYSQL_DATABASE=wordpress -v E:\docker\volume:/var/lib/mysql mysql:5.7-v /home/wordpress_db:/var/lib/mysql mysql:5.7- 호스트의 /home/wordpress_db 디렉터리와 컨테이너의 /var/lib/mysql 디렉터리를 공유.
- 책에서는
/home/wordpress_db폴더를 생성하였지만 실습에서는E:\docker\volume경로에 볼륨을 지정.- 파일 확인
- 동기화 되는 개념이 아니라 완전 같은 디렉토리를 바라보게 된다!
-v옵션을 통한 호스트 볼륨 공유는 호스트의 디렉터리를 컨테이너의 디렉터리에 마운트하는 개념.