# curl -fsSL https://get.docker.com/ | sh
# yum -y install bash-completion wget unzip mysql
# curl https://raw.githubusercontent.com/docker/docker-ce/master/components/cli/contrib/completion/bash/docker -o /etc/bash_completion.d/docker.sh
# systemctl enable --now docker
도커설치
curl을 사용하여 Docker 설치 스크립트를 다운로드하고, sh 명령어를 사용하여 스크립트를 실행하여 Docker를 설치합니다.
필수 패키지 설치
yum을 사용하여 필요한 패키지들을 설치합니다. 여기서는 bash-completion, wget, unzip, mysql 패키지를 설치하고 있습니다.
Docker Bash 자동완성 설정
curl을 사용하여 Docker의 Bash 자동완성 스크립트를 다운로드하여 /etc/bash_completion.d/docker.sh 파일로 저장합니다. 이렇게 하면 Docker 관련 명령어를 사용할 때 Bash 자동완성 기능을 사용할 수 있습니다.
Docker 서비스 활성화
systemctl을 사용하여 Docker 서비스를 활성화하고, 시스템 부팅 시 자동으로 Docker 서비스가 시작되도록 설정합니다.
이러한 명령어들은 Docker를 쉽게 설치하고 구성하기 위한 명령어들로, Docker를 사용할 준비를 마친 후 Docker 명령어를 사용할 수 있게 됩니다.
$ sudo apt update
$ sudo apt install apt-transport-https ca-certificates curl software-properties-common
$ sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
$ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable"
$ sudo apt update
$ sudo apt-cache policy docker-ce
$ sudo apt install docker-ce -y
docker container run -d -p 8282:80 --cpu
docker container run -d -p 8282:80 --cpus 1 --memory 256m -v /tmp:usr/share/nginx/html -name volume-container nginx
# docker search nginx
# docker image pull nginx
# docker image ls
# docker image inspect --format="{{ .Os}}" nginx
# docker container create -p 80:80 --name webserver nginx
# docker container start webserver
# docker container stop webserver
# docker container start webserver
# docker container rm -f webserver
# docker container run -p 80:80 --name webserver nginx # foreground 실행
# docker container run -d -p 80:80 --name webserver nginx # background 실행
# docker container run --name test_cal centos /bin/cal
# docker container run -it --name test_bash centos /bin/bash
# docker container run -it --name test_bash7 centos:7 /bin/bash
# docker container run --rm -it --name test_mysql mysql /bin/mysql -h 192.168.0.102 -u wpuser -p // rm
사용끝나면 지워짐
# docker container run -d --name test_ping centos /bin/ping localhost //
# docker container logs -t test_ping
# docker container run -d -p 8080:80 --name test_port nginx
# docker container stats nginx
# docker container run -d -p 8181:80 --cpus 1 --memory=256m --name test_resource nginx
# docker container run -d -p 8282:80 --cpus 1 --memory=256m -v /tmp:/usr/share/nginx/html --name volume-container nginx
# docker container ls
# docker container ls -a
# docker container ls -a -f name=test_webserver
# docker container ls -a -f exited=0
# docker container ls -a --format "table {{.Names}}\t{{.Status}}"
# docker container attach test_bash
[root@1689b6318c35 /]# ctrl + p, ctrl +q 를 입력
# docker container ls
# docker container exec -it test_port /bin/echo "Hello world" //exec명령어를 훨씬 많이 씀 , 쿠버네티스에서도 씀, openshift에도 exec명령어 잇음
# docker container exec -it test_port /bin/bash
# docker container top test_port
# docker container port test_port
# docker container rename test_port webserver
# docker container cp webserver:/usr/share/nginx/html/index.html /root/index.html
# docker container cp ./index.html webserver:/usr/share/nginx/html/index.html
# docker container diff webserver
# docker container cp /tmp/index.html test_commit_web:/usr/share/nginx/html
# docker container cp /tmp/images test_commit_web:/usr/share/nginx/html
# docker container commit -a "bonghyeon<test@example.com>" -m "NICE TO MEET YOU" webserver test_commit:v1.0
# docker image ls
# docker image inspect test_commit:v1.0
# docker image inspect test_commit:v1.0 | grep Author
# docker image save -o test_commit.tar test_commit:v1.0
# docker image load -i test_commit.tar
# docker container prune //현재 사용되고 있지 않은 컨테이너를 지울때
# docker image ls
# docker container run -d -p 80:80 --name webserver test_commit:v1.0
# docker network ls
# docker network ls -q --filter driver=bridge
# docker network create -d bridge --subnet 10.50.0.0/16 --ip-range 10.50.0.0/24 test_bridge
# docker network rm test_bridge
# docker network connect test_bridge webserver
# docker container inspect webserver
# docker network disconnect test_bridge2 webserver
# docker container run -d -p 8080:80 --name webserver1 --network test_bridge test_commit:v1.0
# docker network inspect test_bridge
--- 우분투 도커 설치
$ sudo apt update
$ sudo apt install apt-transport-https ca-certificates curl software-properties-common
$ sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
$ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable"
$ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu xenial stable"
$ sudo apt update
$ sudo apt-cache policy docker-ce
$ sudo apt install docker-ce -y
sudo usermod -a -G docker ubuntu
# ubuntu를 docker그룹에 추가해서 권한줌
scp test_commit.tar ubuntu@192.168.1.198:/home/ubuntu
docker network create -d bridge --subnet 10.58.0.0/16 --ip-range 10.58.0.0/24 test_bridge
내가 만든 test_bridge랑 연결
# docker network connect test_bridge webserver
# docker inspect webserver
# docker network disconnect bridge webserver
`docker container prune 명령어는 사용하지 않는 도커 컨테이너를 제거하는 명령어. 실행하면 다음과 같은 작업이 수행됨: