본문 바로가기
devops/docker

docker 기본 명령어 및 설명

by 아이티.파머 2019. 6. 21.
반응형

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