1. Docer 기본 명령어 및 설명
1.1 Docker 실행(중지/재시작)
sudo service docker start(stop/restart) - centos 6
sudo systemctl start(stop/restart) docker - centos 7
1.2. docker 컨테이너 삭제
> docker rm {컨테이너ID}
1.3. docker 컨테이너 모두 삭제
# 모든 컨테이너 중지
> docker stop $(docker ps -a -q)
# 모든 컨테이너 삭제
> docker rm 'docker ps -a -q'
> docker ps -q -a | xargs docker rm
# none image 삭제
> docker rmi $(docker images | grep “^” | awk ‘{print $3}’)
1.4. docker 이미지 삭제
> docker rmi {이미지ID}
1.5. docker 모든 이미지 삭제
> docker rmi $(docker images -q)
1.6. docker 로그 보기
> docker logs [option] {containerid}
2. docker 실행
2.1. docker start
docker run [OPTIONS] IMAGE[:TAG|@DIGEST] [COMMAND] [ARG...]
#옵션 설명
-d detached mode 흔히 말하는 백그라운드 모드
-p 호스트와 컨테이너의 포트를 연결 (포워딩)
-v 호스트와 컨테이너의 디렉토리를 연결 (마운트)
-e 컨테이너 내에서 사용할 환경변수 설정
–name 컨테이너 이름 설정
–rm 프로세스 종료시 컨테이너 자동 제거
-it -i와 -t를 동시에 사용한 것으로 터미널 입력을 위한 옵션
–link 컨테이너 연결 [컨테이너명:별칭]
docker run -p 8080:8080 -t springio/gs-spring-boot-docker
# 컨테이너 생성 실행 후 bash 접속
docker run -i -t --name skan_jenkins skan/jenkins:basic /bin/bash
80 : port
docker run --name skan_jenkins -d -p 8080:8080 -p 50000:50000 skan/jenkins:basic
2.2 docker container 접속 방법 [exec]
2.2.1 실행 중인 docker 정보 확인
> docker ps -a
> docker exec 로 컨테이너 접속
> docker exec -it [CONTAINER ID] /bin/bash
2.2.2 shh 쉘 접속후 필요한 파일 및 설정
#mysql 접속
> docker exec -it adteck-mysql mysql -uroot -p
3. docker image 생성 sample
> docker commit <옵션> <컨테이너 이름> <이미지 이름>:<태그>
$ docker commit -m "{commit message}" -a "{master_user}" {container_id} {image_name}:{tag}
$ docker commit -m "initial commit" -a "sangkil.an@cj.net" dc7cf848887a skan/jenkins:0.1
$ docker commit -a "Foo Bar <foo@bar.com>" m "add hello.txt" hello-nginx hello:0.2
-a "Foo Bar <foo@bar.com>"과 -m "add hello.txt" 옵션으로 커밋한 사용자와 로그 메시지를 설정합니다.
hello-nginx 컨테이너를 hello:0.2 이미지로 생성합니다.
4. docker tag/push
docker tag mezzomedia/adserver:latest adverserver:0.1
docker tag <이미지 이름>:<태그> /<이미지 이름>:<태그> 형식입니다.
docker push /<이미지 이름>:<태그> 형식입니다.
* Linux 개인 저장소 생성
1.환경 설정 변경
> sudo docker -d --insecure-registry localhost:5000
> vim /etc/init.d/docker
-----------------------------------------------
DOCKER_OPTS=--insecure-registry localhost:5000
-----------------------------------------------
> sudo service docker restart
* window Docker 개인 저장소 생성 (localhost)
기본 HTTPS로 통신 하기 때문에 안전한 내트워크 상에 있는 곳 에서는 HTTP를 이용할수 있다.
이를 사용하기 위해 설정을 추가 한다.
1. Configration 변경
edit C:/Users/Username/.docker/machine/default/config.json
add the registry : "InsecureRegistry": ["x.x.x.x:port"]
restart docker with > docker-machine.exe restart default (didn't work)
restart windows (there must be a better way ;-)
docker login x.x.x.x:port
2. docker registry 실행
docker run -d -p 5000:5000 --restart=always --name registry registry:2
* push 이미지 확인
1. 이미지 확인하기
$ curl -X GET http://192.168.99.100:5000/v2/_catalog
#출력 {"repositories":["hello-world"]}
2. 태그 정보 확인하기
$ curl -X GET http://192.168.99.100:5000/v2/hello-world/tags/list
# 출력 {"name":"hello-world","tags":["latest"]}
* 외부에서 pull 받기
외부에서 pull 받기 위해서는 docker Image tag 를 가지고 있는 서버의 IP를 configuration 에 등록 한다.
5. Docker 프로그램 설치 방법 Example (redis / aerospike / mysql)
5.1. redis 설치
docker run -p 6379:6379 --name mezzo-redis -d redis:latest
5.2. aerospike-service 설치
docker run -tid --name aerospike -p 3000:3000 -p 3001:3001 -p 3002:3002 -p 3003:3003 aerospike/aerospike-server
5.3. mysql 설치
docker run --name adteck-mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=mezzo2018 -e MYSQL_ROOT_HOST=% \n
-d mysql:5.7.21 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
'devops > docker' 카테고리의 다른 글
Docker-Compose 설명 (0) | 2019.06.21 |
---|---|
Dockerfile command / Attribute 명령어 설명 (0) | 2019.06.21 |
docker- compose [cassandra / mysql] (0) | 2019.06.05 |
docker mysql timezone 기준 시간대 변경 (0) | 2018.10.12 |
Docker 기본 명령어 (0) | 2018.04.24 |