Docker: 두 판 사이의 차이

학교의 모든 지식. SMwiki
둘러보기로 이동 검색으로 이동
 
(사용자 2명의 중간 판 25개는 보이지 않습니다)
1번째 줄: 1번째 줄:
==개요==
{{Docker}}
 
=개요=
반가상화 기술.
반가상화 기술.
<br />
= 설치 =


==리눅스에서 설치==
=기본 사용=


===우분투===
===기본설정===
{| class="wikitable"
{| class="wikitable"
!과정
!과정
13번째 줄: 12번째 줄:
!방법
!방법
|-
|-
|설치
|도커파일 저장경로 확인
|
|공간이 넉넉한 파티션에 저장하는 편이 옳다.
#업데이트
#HTTPS를 통해 패키지를 사용할 수 있게끔 설치.
#도커 저장소용 GPG 키를 추가.
#APT 소스에 도커 저장소 추가.
#도커 설치.
|
|
#sudo apt update
#sudo apt install apt-transport-https ca-certificates curl software-properties-common
#curl -fsSL <nowiki>https://download.docker.com/linux/ubuntu/gpg</nowiki> | sudo apt-key add -
#sudo add-apt-repository "deb [arch=amd64] <nowiki>https://download.docker.com/linux/ubuntu</nowiki> bionic stable"
#sudo apt install docker-ce
|-
|-
|확인
|부팅 시 컨테이너 자동실행
|
|
#이것저것 뜨면 설치가 된 것.
|<code>docker update --restart=always <container-id></code>
#active가 뜬다면 서비스 가동중.
|
#apt-cache policy docker-ce 혹은 sudo systemctl status docker
#sudo systemctl status docker
|-
|-
|유저추가
|부팅 시 컨테이너 자동실행
|도커 관련 명령어를 사용할 때마다 sudo를 사용해야 한다. 이를 방지하기 위한 과정.
|서버가 꺼졌다 다시 시작될 때 컨테이너가 자동 시작되게끔.
이거 적용하고 sudo service docker restart 재시작.
rc.local 안에 다음의 내용을 담아준다.<syntaxhighlight lang="bash">
#!/bin/bash


그리고 유저도 로그아웃했다 들어와야 한다.
docker start $(docker ps -a -q)  # 모든 컨테이너 실행.
|sudo usermod -aG docker $USER
</syntaxhighlight>다른 방법
|-
|권한부여
|소켓파일의 권한을 이용할 수 있게 소유자를 docker그룹으로 바꾼다.
이걸 안하면 다음과 같은 에러가 난다.<ref>Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock:.......</ref>
|sudo chown root:docker /var/run/docker.sock
|}
 
= 기초 사용 =
 
== 이미지 관련 ==
{| class="wikitable"
{| class="wikitable"
!과정
!과정
!설명
!설명
!방법
|-
|-
|이미지 확인
|systemd 서비스 파일 생성
|이미지리스트를 본다.
|아래 예시처럼 system 디렉토리 안에 .service 파일을 생성한다.
<code>sudo vim /etc/systemd/system/mydocker.service</code>
|-
|내용 작성
|<syntaxhighlight lang="bash">
[Unit]
Description=My Docker Container
Requires=docker.service
After=docker.service
 
[Service]
Restart=always
ExecStart=/usr/bin/docker start -a 컨테이너이름
ExecStop=/usr/bin/docker stop -t 2 컨테이너이름
 
[Install]
WantedBy=multi-user.target
</syntaxhighlight>
|}
|vi /etc/rc.local
chmod 755 /etc/rc.local
 
systemctl enable rc-local.service


용량과 태그, ID, 생성날짜, 크기를 볼 수 있다.
systemctl start rc-local.service
|docker images
|-
|모든 이미지 삭제
|
|docker rmi $(docker images -q)
|}<br />
==포테이너 설치==
{| class="wikitable"
!과정
!설명
!방법
|-
|볼륨 생성
|사용할 volume을 생성한다.
|docker volume create portainer_data
|-
|생성
| --restart=always 옵션은 docker를 재시작 해도 자동으로 구동하라는 옵션.
|docker run -d -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data --restart=always portainer/portainer
|}
|}
=에러=
===docker: Error response from daemon: Get "<nowiki>https://registry-1.docker.io/v2/</nowiki>": dial tcp: lookup registry-1.docker.io: Temporary failure in name resolution.===
sudo vi /etc/resolv.conf를 통해 <code>nameserver 8.8.8.8</code>을 등록한다.(구글 DNS를 등록.)
=주석=
[[분류:도커]]
[[분류:도커]]
<references />

2024년 3월 14일 (목) 15:53 기준 최신판

  1. 틀:Docker


  1. Docker
  2. 도커:설치
  3. 사용법
    1. 도커:이미지 관련
    2. 도커:컨테이너 관련

개요[편집 | 원본 편집]

반가상화 기술.

기본 사용[편집 | 원본 편집]

기본설정[편집 | 원본 편집]

과정 설명 방법
도커파일 저장경로 확인 공간이 넉넉한 파티션에 저장하는 편이 옳다.
부팅 시 컨테이너 자동실행 docker update --restart=always <container-id>
부팅 시 컨테이너 자동실행 서버가 꺼졌다 다시 시작될 때 컨테이너가 자동 시작되게끔. rc.local 안에 다음의 내용을 담아준다.
#!/bin/bash

docker start $(docker ps -a -q)  # 모든 컨테이너 실행.
다른 방법
과정 설명
systemd 서비스 파일 생성 아래 예시처럼 system 디렉토리 안에 .service 파일을 생성한다.

sudo vim /etc/systemd/system/mydocker.service

내용 작성
[Unit]
Description=My Docker Container
Requires=docker.service
After=docker.service

[Service]
Restart=always
ExecStart=/usr/bin/docker start -a 컨테이너이름
ExecStop=/usr/bin/docker stop -t 2 컨테이너이름

[Install]
WantedBy=multi-user.target
vi /etc/rc.local

chmod 755 /etc/rc.local

systemctl enable rc-local.service

systemctl start rc-local.service


에러[편집 | 원본 편집]

docker: Error response from daemon: Get "https://registry-1.docker.io/v2/": dial tcp: lookup registry-1.docker.io: Temporary failure in name resolution.[편집 | 원본 편집]

sudo vi /etc/resolv.conf를 통해 nameserver 8.8.8.8을 등록한다.(구글 DNS를 등록.)

주석[편집 | 원본 편집]