티스토리 뷰
본 포스팅은 초보자를 위한 Docker 설치 방법 및 사용 방법에 대한 가이드입니다.
설치 및 활용 환경은 Linux NRSON 3.10.0-514.el7.x86_64 #1 SMP Tue Nov 22 16:42:41 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux 입니다.
1. Docker 설치
Docker를 사용하고 운영하기 위해 일반 사용자 계정인 dockerCon이라는 사용자를 생성하였습니다.
Docker의 경우 root 권한이 필요함으로 먼저 해당 계정에 sudo 사용 권한을 부여합니다.
root 계정으로 /etc/sudoer 파일을 vi로 열고 위와 같이 dockerCon 계정에 권한을 부여합니다.
sudo 권한이 정상부여되었으면 다음과 같이 Linux 환경에 docker를 설치 합니다.
sudo wget -qO- http://get.docker.com/ | sh
설치가 수행되며 아래와 같은 package들이 설치되고 있음을 확인할 수 있습니다.
# Executing docker install script, commit: e749601
+ sudo -E sh -c 'yum install -y -q yum-utils'
No Presto metadata available for base
+ sudo -E sh -c 'yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.r epo'
Loaded plugins: fastestmirror, langpacks
adding repo from: https://download.docker.com/linux/centos/docker-ce.repo
grabbing file https://download.docker.com/linux/centos/docker-ce.repo to /etc/yum.repos.d/docker-ce .repo
repo saved to /etc/yum.repos.d/docker-ce.repo
+ '[' edge '!=' stable ']'
+ sudo -E sh -c 'yum-config-manager --enable docker-ce-edge'
Loaded plugins: fastestmirror, langpacks
====================================== repo: docker-ce-edge =======================================
[docker-ce-edge]
async = True
bandwidth = 0
base_persistdir = /var/lib/yum/repos/x86_64/7
baseurl = https://download.docker.com/linux/centos/7/x86_64/edge
cache = 0
cachedir = /var/cache/yum/x86_64/7/docker-ce-edge
check_config_file_age = True
compare_providers_priority = 80
cost = 1000
deltarpm_metadata_percentage = 100
deltarpm_percentage =
enabled = 1
enablegroups = True
exclude =
failovermethod = priority
ftp_disable_epsv = False
gpgcadir = /var/lib/yum/repos/x86_64/7/docker-ce-edge/gpgcadir
gpgcakey =
gpgcheck = True
gpgdir = /var/lib/yum/repos/x86_64/7/docker-ce-edge/gpgdir
gpgkey = https://download.docker.com/linux/centos/gpg
hdrdir = /var/cache/yum/x86_64/7/docker-ce-edge/headers
http_caching = all
includepkgs =
ip_resolve =
keepalive = True
keepcache = False
mddownloadpolicy = sqlite
mdpolicy = group:small
mediaid =
metadata_expire = 21600
metadata_expire_filter = read-only:present
metalink =
minrate = 0
mirrorlist =
mirrorlist_expire = 86400
name = Docker CE Edge - x86_64
old_base_cache_dir =
password =
persistdir = /var/lib/yum/repos/x86_64/7/docker-ce-edge
pkgdir = /var/cache/yum/x86_64/7/docker-ce-edge/packages
proxy = False
proxy_dict =
proxy_password =
proxy_username =
repo_gpgcheck = False
retries = 10
skip_if_unavailable = False
ssl_check_cert_permissions = True
sslcacert =
sslclientcert =
sslclientkey =
sslverify = True
throttle = 0
timeout = 30.0
ui_id = docker-ce-edge/x86_64
ui_repoid_vars = releasever,
basearch
username =
+ sudo -E sh -c 'yum makecache'
Loaded plugins: fastestmirror, langpacks
base | 3.6 kB 00:00:00
docker-ce-edge | 2.9 kB 00:00:00
docker-ce-stable | 2.9 kB 00:00:00
extras | 3.4 kB 00:00:00
updates | 3.4 kB 00:00:00
(1/14): docker-ce-edge/x86_64/primary_db | 15 kB 00:00:00
(2/14): base/7/x86_64/other_db | 2.5 MB 00:00:00
(3/14): docker-ce-stable/x86_64/primary_db | 12 kB 00:00:00
(4/14): docker-ce-edge/x86_64/filelists_db | 8.5 kB 00:00:00
(5/14): base/7/x86_64/filelists_db | 6.7 MB 00:00:00
(6/14): extras/7/x86_64/filelists_db | 709 kB 00:00:00
(7/14): extras/7/x86_64/other_db | 121 kB 00:00:00
(8/14): extras/7/x86_64/prestodelta | 128 kB 00:00:00
(9/14): docker-ce-edge/x86_64/other_db | 62 kB 00:00:00
(10/14): updates/7/x86_64/prestodelta | 960 kB 00:00:00
(11/14): docker-ce-stable/x86_64/filelists_db | 7.3 kB 00:00:00
(12/14): updates/7/x86_64/other_db | 734 kB 00:00:00
(13/14): updates/7/x86_64/filelists_db | 4.2 MB 00:00:00
(14/14): docker-ce-stable/x86_64/other_db | 66 kB 00:00:00
Loading mirror speeds from cached hostfile
* base: data.nicehosting.co.kr
* extras: data.nicehosting.co.kr
* updates: data.nicehosting.co.kr
Metadata Cache Created
+ sudo -E sh -c 'yum install -y -q docker-ce'
No Presto metadata available for base
warning: /var/cache/yum/x86_64/7/docker-ce-edge/packages/docker-ce-18.03.0.ce-1.el7.centos.x86_64.r pm: Header V4 RSA/SHA512 Signature, key ID 621e9f35: NOKEY
Public key for docker-ce-18.03.0.ce-1.el7.centos.x86_64.rpm is not installed
Importing GPG key 0x621E9F35:
Userid : "Docker Release (CE rpm) <docker@docker.com>"
Fingerprint: 060a 61c5 1b55 8a7f 742b 77aa c52f eb6b 621e 9f35
From : https://download.docker.com/linux/centos/gpg
setsebool: SELinux is disabled.
If you would like to use Docker as a non-root user, you should now consider
adding your user to the "docker" group with something like:
sudo usermod -aG docker dockerCon
Remember that you will have to log out and back in for this to take effect!
WARNING: Adding a user to the "docker" group will grant the ability to run
containers which can be used to obtain root privileges on the
docker host.
Refer to https://docs.docker.com/engine/security/security/#docker-daemon-attack-surface
for more information.
[dockerCon@NRSON ~]$
docker가 정상적으로 설치가 되면 다음 명령어로 실행 또는 중지 할수 있습니다.
아래와 같이 docker-containerd 프로세스가 기동되는 것을 확인 할 수 있습니다.
docker 기동 : sudo service docker start
docker 종료 : sudo service docker stop
docker 관련 업데이트는 아래와 같이 받을 수 있습니다.
sudo yum install docker
docker 버전은 아래와 같이 확인 할 수 있습니다.
docker version
2. Docker hub 연동
- Docker는 2013년에 시작된 오픈소스 프로젝트로, 이미 콘테이너와 거의 동의어 취급을 받기에 이르고 리눅스 콘테이너와 똑같은 커널 원리로 만들어졌으며, 사용하기 편한 인터페이스와 중앙 공공 이미지 저장소의 운영을 통해 콘테이너 열풍을 부추기고 있습니다. 이 중앙 저장소를 도커 허브(Docker Hub)라고 부르며, 이것이 ‘쉬운 콘테이너 기술’인 도커의 핵심이라 할 수 있습니다.
- Docker hub에서는 자신만의 repository를 등록하고 배포하고 관리할 수 있습니다.
Docker Hub https://hub.docker.com/
- 하단의 New to Docker 부분을 통해 손쉽게 Docker Hub에 가입할 수 있습니다.
정말 간단하죠.?
- 아래와 같이 입력한 E-Main로 인증메일이 날라오니 Confirm 하시면 최종 승인됩니다.
- Docker hub 로그인 화면입니다.
- 아래와 같이 Docker에 로그인이 완료 되었습니다.
3. Docker 활용 가이드
자 이제 실제 Docker를 활용하는 방법에 대해 알아 보겠습니다.
간단히 지금까지 수행한 내용을 정리하자면,
- Linux에 Docker Install
- Docker Hub 가입 및 로그인
다양한 명령어들을 지금부터 테스트 해 볼텐데요 잘 따라 오세요.
먼저 Docker Hub에 올라가 있는 최신 버전의 Wildfly를 다운로드 받아 위에 생성한 Docker hub nara0617 계정에 repository를 생성하여 업로드 해보도록 하겠습니다.
1) Docker 로그인
Docker hub에서 다운로드 받기 위해 docker login을 수행합니다.
docker ID, PassWD는 Docker Hub 가입시 입력한 값을 넣어 주시면됩니다.
Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https://hub.docker.com to create one.
Username (nara0617): nara0617
Password:
Login Succeeded
[dockerCon@NRSON ~]$
2) Wildfly Package 조회
Wildfly 다운로드를 받기 위해 아래와 같이 package를 조회해 봅니다.
아래와 같이 다양한 docker repository가 있는데요 그중 최상단의 jboss/wildfly를 다운로드 받아 보도록 하겠습니다.
하단의 내용은 Docker Hub에서 조회한 내용과 동일함을 알려 드립니다.
- docker search result
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
jboss/wildfly WildFly application server image 388 [OK]
apiman/on-wildfly10 The full apiman quickstart running on WildFl… 8 [OK]
openshift/wildfly-8-centos DEPRECATED - see openshift/wildfly-81-centos7 6 [OK]
piegsaj/wildfly WildFly 10.0.0.Final on Java 8 6 [OK]
wildflyext/wildfly-camel WildFly with Camel Subsystem 5
frekele/wildfly docker run --rm --name wildfly -p 8080:8080 … 4 [OK]
aerogear/unifiedpush-wildfly 4 [OK]
openshift/wildfly-101-centos7 A Centos7 based WildFly v10.1 image for use … 3
bitnami/wildfly Bitnami WildFly Docker Image 2 [OK]
jboss/keycloak-adapter-wildfly 2 [OK]
openshift/wildfly-110-centos7 A Centos7 based WildFly v11.0 image for use … 1
ceagan/wildfly JBoss Wildfly with XMLStarlet 1 [OK]
openshift/wildfly-100-centos7 A Centos7 based WildFly v10.0 image for use … 1
rafabene/wildfly-ticketmonster 1 [OK]
bangnab/wildfly-oraclejdk Like jboss/wildfly but with Oracle JDK inste… 1 [OK]
caltha/wildfly Self contained WildFly application server 0 [OK]
dthuilot/wildfly-admin wildfly with admin console enabled. 0 [OK]
splatform/wildfly-resource 0
cfje/wildfly-resource 0
fksaito/wildfly Modificações em imagens wildfly para expor p… 0
openshift/wildfly-90-centos7 A Centos7 based WildFly v9.0 image for use w… 0
devcomb/keycloak-adapter-wildfly Similar to 'jboss/keycloak-adapter-wildfly' … 0
openshift/wildfly-81-centos7 A Centos7 based WildFly v8.1 image for use w… 0
parunruaivo/wildfly-deployer jdk8 maven wildfly 0
surveysampling/wildfly-base base wildfly image 0
[dockerCon@NRSON ~]$
- docker hub에서 조회한 result
3) Docker hub에서 wildfly 다운로드
아래와 같이 손쉽게 docker hub에서 다운로드 받을 수 있습니다.
여기서 유의할 점은
sudo docker pull jboss/wildfly:[tag]
위 tag 부분입니다.
Docker hub에는 repository 하위 구조로 tag를 생성할 수 있습니다. 먼저 설명전에 jboss/wildfly의 tag를 살펴 보겠습니다.
Repository의 jboss/wildfly를 클릭하면 아래 화면으로 이동합니다.
- 상단의 Tags를 클릭하면 아래와 같이 해당 repository에 verison 별 업데이트를 수행할 수 있습니다.
Tag는 위와 같이 해당 repository에 버전 관리 또는 패치 이력을 확인 할 수 있는 역할을 수행합니다.
자 그럼 실제 docker hub에서 해당 파일을 다운로드 해보겠습니다.
저희가 받은 버전은 wildfly12.0.0.Final 버전이며 아래와 같이 받을수 있습니다.
위에 적어 두었지만 다시한번 말씀드리자면,
sudo docker pull jboss/wildfly:[tag]
위와 같이 tag 부분에 해당 repository의 tag 명을 적어주면 다운받을 수 있습니다.
사진이 잘려서 아래쪽에 보면... 12.0.0.Final 있어요 ㅎㅎ 직접 들어가서 확인해 보시는 것도 도움이 되겠네요.
12.0.0.Final: Pulling from jboss/wildfly
Digest: sha256:f3cf633d47453b879fad95d6fdfe88335036a224808df8704c1c733fb995c2c9
Status: Image is up to date for jboss/wildfly:12.0.0.Final
[dockerCon@NRSON ~]$
4) 개인 계정에 repository 생성
자 그럼 이제 다운로드 받은 wildfly12.0.0.Final을 개인 계정으로 옮기기 위해 repository를 생성하도록 하겠습니다.
방법은 매우 간단합니다.
sudo docker tag jboss(다운받은 계정명)/wildfly(다운받은 계정의 repository):12.0.0.Final(다운받은 Tag) nara0617(본인 계정)/wildfly(본인 계정의 repository):12.0.0.Final(본인 계정의 Tag 명칭)
형식입니다.
[dockerCon@NRSON ~]$
5) 개인 계정 repository에 업로드
자 그럼 저의 최초 tag 및 upload 과정입니다.
sudo docker push nara0617(본인 계정)/wildfly(본인 계정의 repository):12.0.0.Final(본인 계정의 Tag 명칭)
형식입니다.
The push refers to repository [docker.io/nara0617/wildfly]
edb20a08b656: Pushing [> ] 3.319MB/200MB
7947a0b3572f: Pushing [==> ] 11.57MB/203.2MB
83203b7fd655: Pushing [==================================================>] 308.7kB
a338cab01449: Pushing [================> ] 9.46MB/28.55MB
b03095563b79: Pushing [=> ] 6.488MB/195.4MB
위와 같이 수행되다 정상 완료되면,
[dockerCon@NRSON ~]$ sudo docker push nara0617/wildfly:12.0.0.Final
The push refers to repository [docker.io/nara0617/wildfly]
edb20a08b656: Pushed
7947a0b3572f: Pushed
83203b7fd655: Pushed
a338cab01449: Pushed
b03095563b79: Pushed
12.0.0.Final: digest: sha256:f3cf633d47453b879fad95d6fdfe88335036a224808df8704c1c733fb995c2c9 size: 1373
[dockerCon@NRSON ~]$
이런 형식으로 종료가 되죠.
자 업로드가 완료 되었으니 직접 본인의 Docker Hub에 가서 확인해 보겠습니다.
6) Docker hub 확인
DashBoard를 보면 다음과 같이 repository wildfly가 생성된 것을 볼 수 있습니다.
위에서 살펴보았던 것처럼 Tags로 이동하면, 방금전 업로드 했던 12.0.0.Final 버전이 업로드 된것을 볼수 있네요. 굿!
이제 제 nara0617/wildfly는 누구나 다운로드 받을 수 있는 버전이 되었습니다.
참고로 repository 관리 화면을 확인하고 오늘 포스팅은 마치도록 하겠습니다.
docker repository에 들어가면 Tags 옆에 Settings 라는 탭이 있습니다.
해당 탭을 눌러 보면 다음과 같은 화면이 출력됩니다.
Make this Repository Private 항목은 해당 repository를 Owner와 organization에 포함된 멤버에게만 공개하는 방식입니다.
Delete Repositry는 말 그대로 그냥 해당 Repository를 지우겠다는 의미입니다.
자 다음시간에는 Docker Hub Repository에 업데이트 된 wildfly를 다시 다운받아 패치 반영하는 방법을 알아 보도록 하겠습니다.
감사합니다.
'③ 클라우드 > ⓓ Docker' 카테고리의 다른 글
[Docker] 폐쇄망에 Docker 구축하기 (3) | 2019.05.21 |
---|---|
[Docker] Docker Image 관리 가이드 (0) | 2018.10.26 |
[Docker Issue] 2. Dockerfile로 Image 생성 시 오류 (add failed stat /var/lib/docker/tmp/ no such file or directory) (0) | 2018.10.15 |
[Docker Issue] 1. docker login Issue & docker repository 추가 (0) | 2018.10.15 |
[Cloud] Docker 사용 가이드 (0) | 2018.03.30 |
- Total
- Today
- Yesterday
- wildfly
- Architecture
- 마이크로서비스
- Da
- Docker
- k8s
- API Gateway
- node.js
- 마이크로서비스 아키텍처
- JEUS7
- jeus
- openstack tenant
- 오픈스택
- aws
- webtob
- 아키텍처
- OpenStack
- apache
- JEUS6
- TA
- MSA
- git
- SWA
- aa
- 쿠버네티스
- JBoss
- kubernetes
- openstack token issue
- SA
- nodejs
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |