실패는 성공을 위한 밑거름

2. docker 설치와 컨테이너 실행 본문

devops/docker

2. docker 설치와 컨테이너 실행

레드매실 2021. 11. 17. 01:28

아래기준 작성

os : centos7.6 

원활한 네트워크 환경

 

 


docker 설치

아래의 명령어를 통해 설치한다.

 

#docker 설치
yum -y install docker;
#docker 시작
systemctl start docker;
#docker 재시작시 자동시작
systemctl enable docker;

 

docker cli는 도커 호스트에 명령을 전달하고 결과를 받아서 출력함

 

docker run [options] image [:Tag | @DIGEST] [COMMAND] [ARG….]

-d detached mode(백그라운드 모드)
-p 호스트와 컨테이너의 포트를 연결
-v 호스트와 컨테이너의 디렉토리를 연결
-e 컨테이너 내에서 사용할 환경변수 설정
--name 컨테이너 이름 설정
--rm 프로세스 종료시 컨테이너 자동제거
-it -i 와 -t를 동시에 사용한 것으로 터미널 입력을위한 옵션
--network 네트워크 연결

 

컨테이너 실행

컨테이너는 실행이 엄청 빠르다

 

컨테이너 안으로 들어가는 법

 

//우분투 컨테이너를 생성하고 컨테이너 안으로 들어간다.

docker run --rm -it ubuntu:20.04 /bin/sh

 

//센토스 컨테이너를 생성하고 컨테이너 안으로 들어가기

docker run --rm -it centos:8 /bin/sh

 

//해시코프사의 통신 프로토콜 띄우기

docker run --rm -p 5678:5678 hashicorp/http-echo -text=”hello world”

docker run --rm -p (host ip):(container ip) hashicorp/http-echo -text=”hello world”

 

//통신받는법

curl (docker host ip):5678



포트 변경 컨테이너 실행 

redis 실행하기



도커로 컨테이너를 pull(다운)받으면 호스트기반에서  포트바꿔서 실행할수있다.

 

ex)

docker run --rm -p 1234:6379 redis

 

telnet localhost 1234 <--redis 실행어

 

set hello world <--저장

 

get hello <--불러오기

 

world















컨테이너에 이름주고 실행하기

 

 

도커의 컨테이너로 접속하지않고 바로 명령어를 실행하는법

docker exec -it mysql mysql

※ 이 때 mysql 이라는 이름의 컨테이너가 pull받아져있어야한다.






애차




 

docker의 컨테이너는 내리게되면(docker stop or down) docker컨테이너안의 데이터가 날라가게된다. 그래서 volume옵션으로 hostpc에 데이터를 저장해놔야한다.



docker-compose yml파일만들기

 

version: '2'

services:

 db:

  image: mysql:5.7

  volumes:

  - ./mysql:/var/lib/mysql

  restart: always

  environment:

   MYSQL_ROOT_PASSWORD: wordpress

   MYSQL_DATABASE: wordpress

   MYSQL_USER: wordpress

   MYSQL_PASSWORD: wordpress

 wordpress:

  image: wordpress:latest

  volumes:

   - ./wp:/var/www/html

  ports:

   - "8000:80"

  restart: always

  environment:

   WORDPRESS_DB_HOST: db:3306

   WORDPRESS_DB_PASSWORD: wordpress









 

docker run -d --rm --name nginx -p 50000:80 nginx:latest

docker run -d --rm --name nginx -p 50000:80 -v /nginx_html:/usr/share/nginx/html nginx:latest