docker 기본 명령어 및 설명

2019.06.21 11:04docker

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

'docker' 카테고리의 다른 글

docker-compose 예제  (0) 2019.06.21
Docker-Compose 설명  (0) 2019.06.21
Dockerfile command / Attribute 명령어 설명  (0) 2019.06.21
docker 기본 명령어 및 설명  (0) 2019.06.21
docker- compose [cassandra / mysql]  (0) 2019.06.05
docker/mysql 기준 시간대 변경  (0) 2018.10.12
1 2 3 4 5 6