Mac를 사용하여 SSH 서버 프로세스를 수행하는 Docker 이미지 만들기
6794 단어 dockerformacDockerdocker-for-mac
릴리즈
Mac
Docker
Mac 용 Docker Desktop 설치
https://docs.docker.com/docker-for-mac/install/
Docker Hub 계정을 만들고 Get Docker
'Docker ID'의 경우 메일 주소로 로그인할 수도 있지만 docker pull에서 오류가 발생할 수 있으므로 Docker ID를 입력합니다.
$ docker version
Client: Docker Engine - Community
Version: 18.09.1
API version: 1.39
Go version: go1.10.6
Git commit: 4c52b90
Built: Wed Jan 9 19:33:12 2019
OS/Arch: darwin/amd64
Experimental: false
Server: Docker Engine - Community
Engine:
Version: 18.09.1
API version: 1.39 (minimum version 1.12)
Go version: go1.10.6
Git commit: 4c52b90
Built: Wed Jan 9 19:41:49 2019
OS/Arch: linux/amd64
Experimental: false
Docker 이미지 만들기
Docker 기반 이미지 확인
이번에는 Docker Hub 레지스트리의 공식 아마존 linux 이미지를 이용해서...
$ docker search amazonlinux --limit 1
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
amazonlinux Amazon Linux provides a stable, secure, and … 572 [OK]
$ curl -s https://registry.hub.docker.com/v2/repositories/library/amazonlinux/tags/ | jq '.results[].name' | sort
"1"
"1-with-sources"
"2"
"2-with-sources"
"2.0.20190207"
"2.0.20190207-with-sources"
"2018.03-with-sources"
"2018.03.0.20190207-with-sources"
"latest"
"with-sources"
Docker 컨트롤러에 로그인한 SSH 서버의 키 쌍 만들기
$ ssh-keygen -t rsa -m PEM
이른바'-m PEM'https://qiita.com/tonishy/items/91066b1391e5e772622f
Docker file 만들기
FROM amazonlinux:1
RUN yum install -y shadow-utils ← groupadd コマンドを使うためにインストール
RUN groupadd -g 500 ec2-user
RUN adduser -u 500 -g 500 ec2-user
RUN usermod -aG wheel ec2-user
RUN mkdir -m 0700 /home/ec2-user/.ssh
RUN echo "公開鍵" > /home/ec2-user/.ssh/authorized_keys ← 上で作成したものの中身をそのまま貼り付け
RUN chmod 0600 /home/ec2-user/.ssh/authorized_keys
RUN chown -R ec2-user.ec2-user /home/ec2-user/.ssh
RUN echo 'root:適当なものに' | chpasswd ← 念の為に root のパスワードを設定
RUN yum install -y sudo
RUN echo "ec2-user ALL = NOPASSWD: ALL" > /etc/sudoers.d/cloud-init
RUN echo "ec2-user ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers.d/cloud-init
RUN chmod 0440 /etc/sudoers.d/cloud-init ← ファイル名は何でもよい、とりあえず EC2 Amazon Linux のデフォに合わせた
RUN yum install -y openssh-server
RUN /usr/bin/ssh-keygen -A ← SSH サーバーホスト鍵を作成
EXPOSE 22
CMD ["/usr/sbin/sshd", "-D"]
Docker file 만들기
Docker files 파일이 있는 동일한 폴더에서 다음 실행
※ 최초 구축 시 Docker Hub 레지스트리에서 아마존 linux:1 이미지를 다운로드하려면 인터넷에 접속해야 합니다
$ ls
Dockerfile
$ docker build -t amazonlinux1 .
완성된 인상을 확인하다
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
amazonlinux1 latest f61c2d171ce7 26 seconds ago 363MB
amazonlinux 1 7f001bfb59e5 32 hours ago 168MB
다음 이미지는amazonlinux:1의 원시 이미지입니다.위의 이미지는 Docker file의 컨텐트로 오리지널 이미지의 이미지를 사용자 정의합니다.
Docker file을 수정하고 재구성하려면 위의 이미지만 삭제하고 아래의 이미지만 남기면 매번 구축할 때마다 Docker Hub 등록표에서amazonlinux:1의 이미지를 다운로드할 필요가 없습니다.
컨테이너 제작과 SSH 연결 확인
다음 명령을 사용하여 Docker 이미지에서 컨테이너 만들기
$ docker run -d -p 127.0.0.1:2222:22 --name amazonlinux1 amazonlinux1
"-p 127..0.1:22:22"는 포트 전달 설정입니다.로컬 127..0.1:222를 컨테이너에 연결하는 22(ssh)
컨테이너 확인
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
6d43e67dcb8b amazonlinux1 "/usr/sbin/sshd -D" 3 seconds ago Up 1 second 127.0.0.1:2222->22/tcp amazonlinux1
Mac의 터미널에서 컨테이너에 대한 SSH 서버 프로세스에 대한 SSH 로그인
$ ssh -i 秘密鍵 -l ec2-user 127.0.0.1 -p 2222
[ec2-user@6d43e67dcb8b ~]$ ← コンテナーのプロンプト
컨테이너의 정지, 삭제, 이미지 삭제
취소
중지할 컨테이너의 CONTAINER ID를 확인합니다.
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
6d43e67dcb8b amazonlinux1 "/usr/sbin/sshd -D" 4 minutes ago Up 4 minutes 127.0.0.1:2222->22/tcp amazonlinux1
컨테이너 ID를 지정하여 stop
$ docker stop 6d43e67dcb8b
6d43e67dcb8b
삭제할 컨테이너의 CONTAINER ID 확인
$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
6d43e67dcb8b amazonlinux1 "/usr/sbin/sshd -D" 6 minutes ago Exited (0) About a minute ago amazonlinux1
컨테이너 ID 지정 및 삭제
$ docker rm 6d43e67dcb8b
6d43e67dcb8b
삭제할 이미지의 IMAGE ID 또는 REPOSITORY:TAG 확인
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
amazonlinux1 latest f61c2d171ce7 17 minutes ago 363MB
amazonlinux 1 7f001bfb59e5 32 hours ago 168MB
위 이미지에서 삭제 이번에 지정한 REPOSITORY: TAG 삭제
$ docker rmi amazonlinux1:latest
$ docker rmi amazonlinux:1
Reference
이 문제에 관하여(Mac를 사용하여 SSH 서버 프로세스를 수행하는 Docker 이미지 만들기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/tonishy/items/373481114887b369aeba텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)