标签:docker
【资料整理】docker深入1-创建一个自己的image
=== 参考资料: [业务架构实践]应该如何使用阿里云?高级篇 http://bbs.aliyun.com/read/182036.html?spm=5176.7189909.0.0.R1MNwz&displayMode=1 利用Docker构建开发环境 http://tech.uc.cn/?p=2726 Docker:利用Linux容器实现可移植的应用部署 http://www.infoq.com/cn/articles/docker-containers cnetos7安装docker V1.0 http://www.51ou.com/browse/centos/57797.html 笔记- api管理docker Container的lnmp操作 http://www.tuicool.com/articles/3QJFRzI CentOS 6.5下使用docker 容器 http://www.21ops.com/linux/7324.html 构建一个高可用及自动发现的Docker基础架构-HECD[原创] http://blog.liuts.com/post/242/ Dockerfile Reference https://docs.docker.com/reference/builder/ Docker使用Dockerfile创建支持ssh服务自启动的容器镜像 http://blog.csdn.net/kongxx/article/details/38412119 Docker之配置Centos_ssh http://blog.chinaunix.net/uid-10915175-id-4442800.html CentOS 6.5 制作可以ssh登录的Docker镜像 http://www.21ops.com/linux/26334.html/comment-page-1 === 【】安装 [root@server200-21 ~]# yum install docker-io [root@server200-21 ~]# docker -v Docker version 1.4.1, build 5bc2ff8/1.4.1 【】启动服务 [root@server200-21 ~]# service docker start 【】查看状态 [root@server200-21 ~]# docker info 【】将某个用户加入到docker组,以便已非root用户来运行docker命令。 [root@server200-21 ~]# usermod -a -G docker Jack 切换到用户目录 【】从国内的仓库docker.cn上pull一个image到本地 [Jack@server200-21 ~]$ docker pull docker.cn/docker/centos 【】查看images [Jack@server200-21 ~]$ docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE docker.cn/docker/centos latest 8efe422e6104 4 weeks ago 224 MB docker.cn/docker/centos 7 8efe422e6104 4 weeks ago 224 MB docker.cn/docker/centos centos7 8efe422e6104 4 weeks ago 224 MB 【】Dockerfile [Jack@server200-21 ~]$ mkdir repository [Jack@server200-21 ~]$ cd repository/ 】编辑启动脚本 [Jack@server200-21 repository]$ vim start.sh [Jack@server200-21 repository]$ cat start.sh #!/bin/bash __create_user() { # Create a user to SSH into as. useradd admin SSH_USERPASS=admin echo -e "$SSH_USERPASS\n$SSH_USERPASS" | (passwd --stdin admin) echo ssh user password: $SSH_USERPASS } # Call all functions __create_user 】编辑Dockerfile [Jack@server200-21 repository]$ vim Dockerfile [Jack@server200-21 repository]$ cat Dockerfile FROM docker.cn/docker/centos:7 MAINTAINER pcnk RUN yum -y update; yum clean all RUN yum -y install openssh-server passwd; yum clean all ADD ./start.sh /root/start.sh RUN mkdir /var/run/sshd RUN /bin/sed -i ‘s/.*session.*required.*pam_loginuid.so.*/session optional pam_loginuid.so/g‘ /etc/pam.d/sshd RUN ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key -N ‘‘ RUN chmod 755 /root/start.sh # EXPOSE 22 RUN ./root/start.sh ENTRYPOINT ["/usr/sbin/sshd", "-D"] 】查看images: [Jack@server200-21 repository]$ docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE docker.cn/docker/centos centos7 8efe422e6104 4 weeks ago 224 MB docker.cn/docker/centos latest 8efe422e6104 4 weeks ago 224 MB docker.cn/docker/centos 7 8efe422e6104 4 weeks ago 224 MB 】build一个image: [Jack@server200-21 repository]$ docker build --rm -t develop/ssh:v1 . Sending build context to Docker daemon 3.072 kB Sending build context to Docker daemon Step 0 : FROM docker.cn/docker/centos:7 ---> 8efe422e6104 Step 1 : MAINTAINER pcnk ---> Running in 77605343a277 ---> 26a7e9d91296 Removing intermediate container 77605343a277 Step 2 : RUN yum -y update; yum clean all ---> Running in 43889045a3ed Loaded plugins: fastestmirror Determining fastest mirrors * base: mirrors.cug.edu.cn * extras: centos.ustc.edu.cn * updates: centos.ustc.edu.cn Resolving Dependencies --> Running transaction check ---> Package glibc.x86_64 0:2.17-55.el7_0.3 will be updated ---> Package glibc.x86_64 0:2.17-55.el7_0.5 will be an update ---> Package glibc-common.x86_64 0:2.17-55.el7_0.3 will be updated ---> Package glibc-common.x86_64 0:2.17-55.el7_0.5 will be an update ---> Package openssl-libs.x86_64 1:1.0.1e-34.el7_0.6 will be updated ---> Package openssl-libs.x86_64 1:1.0.1e-34.el7_0.7 will be an update ---> Package systemd-libs.x86_64 0:208-11.el7_0.5 will be updated ---> Package systemd-libs.x86_64 0:208-11.el7_0.6 will be an update ---> Package tzdata.noarch 0:2014j-1.el7_0 will be updated ---> Package tzdata.noarch 0:2015a-1.el7_0 will be an update --> Finished Dependency Resolution Dependencies Resolved ================================================================================ Package Arch Version Repository Size ================================================================================ Updating: glibc x86_64 2.17-55.el7_0.5 updates 3.6 M glibc-common x86_64 2.17-55.el7_0.5 updates 11 M openssl-libs x86_64 1:1.0.1e-34.el7_0.7 updates 942 k systemd-libs x86_64 208-11.el7_0.6 updates 154 k tzdata noarch 2015a-1.el7_0 updates 432 k Transaction Summary ================================================================================ Upgrade 5 Packages Total download size: 16 M Downloading packages: Delta RPMs disabled because /usr/bin/applydeltarpm not installed. warning: /var/cache/yum/x86_64/7/updates/packages/openssl-libs-1.0.1e-34.el7_0.7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY Public key for openssl-libs-1.0.1e-34.el7_0.7.x86_64.rpm is not installed -------------------------------------------------------------------------------- Total 2.0 MB/s | 16 MB 00:08 Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 Importing GPG key 0xF4A80EB5: Userid : "CentOS-7 Key (CentOS 7 Official Signing Key) <security@centos.org>" Fingerprint: 6341 ab27 53d7 8a78 a7c2 7bb1 24c6 a8a7 f4a8 0eb5 Package : centos-release-7-0.1406.el7.centos.2.5.x86_64 (@Updates/$releasever) From : /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 Running transaction check Running transaction test Transaction test succeeded Running transaction Updating : tzdata-2015a-1.el7_0.noarch 1/10 Updating : glibc-common-2.17-55.el7_0.5.x86_64 2/10 Updating : glibc-2.17-55.el7_0.5.x86_64 3/10 Updating : 1:openssl-libs-1.0.1e-34.el7_0.7.x86_64 4/10 Updating : systemd-libs-208-11.el7_0.6.x86_64 5/10 Cleanup : systemd-libs-208-11.el7_0.5.x86_64 6/10 Cleanup : 1:openssl-libs-1.0.1e-34.el7_0.6.x86_64 7/10 Cleanup : glibc-common-2.17-55.el7_0.3.x86_64 8/10 Cleanup : glibc-2.17-55.el7_0.3.x86_64 9/10 Cleanup : tzdata-2014j-1.el7_0.noarch 10/10 Verifying : glibc-2.17-55.el7_0.5.x86_64 1/10 Verifying : tzdata-2015a-1.el7_0.noarch 2/10 Verifying : glibc-common-2.17-55.el7_0.5.x86_64 3/10 Verifying : 1:openssl-libs-1.0.1e-34.el7_0.7.x86_64 4/10 Verifying : systemd-libs-208-11.el7_0.6.x86_64 5/10 Verifying : glibc-common-2.17-55.el7_0.3.x86_64 6/10 Verifying : systemd-libs-208-11.el7_0.5.x86_64 7/10 Verifying : tzdata-2014j-1.el7_0.noarch 8/10 Verifying : glibc-2.17-55.el7_0.3.x86_64 9/10 Verifying : 1:openssl-libs-1.0.1e-34.el7_0.6.x86_64 10/10 Updated: glibc.x86_64 0:2.17-55.el7_0.5 glibc-common.x86_64 0:2.17-55.el7_0.5 openssl-libs.x86_64 1:1.0.1e-34.el7_0.7 systemd-libs.x86_64 0:208-11.el7_0.6 tzdata.noarch 0:2015a-1.el7_0 Complete! Loaded plugins: fastestmirror Cleaning repos: base extras updates Cleaning up everything Cleaning up list of fastest mirrors ---> 65693f134694 Removing intermediate container 43889045a3ed Step 3 : RUN yum -y install openssh-server passwd; yum clean all ---> Running in a96d6492c1c1 Loaded plugins: fastestmirror Determining fastest mirrors * base: centos.ustc.edu.cn * extras: centos.ustc.edu.cn * updates: centos.ustc.edu.cn Resolving Dependencies --> Running transaction check ---> Package openssh-server.x86_64 0:6.4p1-8.el7 will be installed --> Processing Dependency: openssh = 6.4p1-8.el7 for package: openssh-server-6.4p1-8.el7.x86_64 --> Processing Dependency: fipscheck-lib(x86-64) >= 1.3.0 for package: openssh-server-6.4p1-8.el7.x86_64 --> Processing Dependency: libwrap.so.0()(64bit) for package: openssh-server-6.4p1-8.el7.x86_64 --> Processing Dependency: libfipscheck.so.1()(64bit) for package: openssh-server-6.4p1-8.el7.x86_64 ---> Package passwd.x86_64 0:0.79-4.el7 will be installed --> Running transaction check ---> Package fipscheck-lib.x86_64 0:1.4.1-5.el7 will be installed --> Processing Dependency: /usr/bin/fipscheck for package: fipscheck-lib-1.4.1-5.el7.x86_64 ---> Package openssh.x86_64 0:6.4p1-8.el7 will be installed ---> Package tcp_wrappers-libs.x86_64 0:7.6-77.el7 will be installed --> Running transaction check ---> Package fipscheck.x86_64 0:1.4.1-5.el7 will be installed --> Finished Dependency Resolution Dependencies Resolved ================================================================================ Package Arch Version Repository Size ================================================================================ Installing: openssh-server x86_64 6.4p1-8.el7 base 367 k passwd x86_64 0.79-4.el7 base 105 k Installing for dependencies: fipscheck x86_64 1.4.1-5.el7 base 21 k fipscheck-lib x86_64 1.4.1-5.el7 base 11 k openssh x86_64 6.4p1-8.el7 base 341 k tcp_wrappers-libs x86_64 7.6-77.el7 base 66 k Transaction Summary ================================================================================ Install 2 Packages (+4 Dependent packages) Total download size: 911 k Installed size: 2.4 M Downloading packages: -------------------------------------------------------------------------------- Total 1.1 MB/s | 911 kB 00:00 Running transaction check Running transaction test Transaction test succeeded Running transaction Installing : fipscheck-1.4.1-5.el7.x86_64 1/6 Installing : fipscheck-lib-1.4.1-5.el7.x86_64 2/6 Installing : openssh-6.4p1-8.el7.x86_64 3/6 Installing : tcp_wrappers-libs-7.6-77.el7.x86_64 4/6 Installing : openssh-server-6.4p1-8.el7.x86_64 5/6 Installing : passwd-0.79-4.el7.x86_64 6/6 Verifying : openssh-server-6.4p1-8.el7.x86_64 1/6 Verifying : openssh-6.4p1-8.el7.x86_64 2/6 Verifying : tcp_wrappers-libs-7.6-77.el7.x86_64 3/6 Verifying : fipscheck-lib-1.4.1-5.el7.x86_64 4/6 Verifying : fipscheck-1.4.1-5.el7.x86_64 5/6 Verifying : passwd-0.79-4.el7.x86_64 6/6 Installed: openssh-server.x86_64 0:6.4p1-8.el7 passwd.x86_64 0:0.79-4.el7 Dependency Installed: fipscheck.x86_64 0:1.4.1-5.el7 fipscheck-lib.x86_64 0:1.4.1-5.el7 openssh.x86_64 0:6.4p1-8.el7 tcp_wrappers-libs.x86_64 0:7.6-77.el7 Complete! Loaded plugins: fastestmirror Cleaning repos: base extras updates Cleaning up everything Cleaning up list of fastest mirrors ---> d6d5d26a325a Removing intermediate container a96d6492c1c1 Step 4 : ADD ./start.sh /root/start.sh ---> 06ff76970b4a Removing intermediate container fc185c16dec7 Step 5 : RUN mkdir /var/run/sshd ---> Running in 4670dcd82f93 ---> 904ed7d476e9 Removing intermediate container 4670dcd82f93 Step 6 : RUN /bin/sed -i ‘s/.*session.*required.*pam_loginuid.so.*/session optional pam_loginuid.so/g‘ /etc/pam.d/sshd ---> Running in 5996bf6a5a23 ---> e48a480c7498 Removing intermediate container 5996bf6a5a23 Step 7 : RUN ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key -N ‘‘ ---> Running in 2c24cb002c4d Generating public/private rsa key pair. Your identification has been saved in /etc/ssh/ssh_host_rsa_key. Your public key has been saved in /etc/ssh/ssh_host_rsa_key.pub. The key fingerprint is: 48:fc:06:c2:12:e9:b8:6d:1f:91:e5:68:d4:0a:54:4c root@1e15b50fb185 The key‘s randomart image is: +--[ RSA 2048]----+ | .o=E. | | ooo.o | | o.oo*+ | |. ..*o.+ | | o . .. S | |. o . . | | . . . | | . | | | +-----------------+ ---> 4463e6885b2e Removing intermediate container 2c24cb002c4d Step 8 : RUN chmod 755 /root/start.sh ---> Running in e806ed020a8d ---> 1cc76b428192 Removing intermediate container e806ed020a8d Step 9 : RUN ./root/start.sh ---> Running in 9b2ba94d80c0 Changing password for user admin. passwd: all authentication tokens updated successfully. ssh user password: admin ---> 61d83e0403a8 Removing intermediate container 9b2ba94d80c0 Step 10 : ENTRYPOINT /usr/sbin/sshd -D ---> Running in abdd6049a1a8 ---> 42d8e120be8f Removing intermediate container abdd6049a1a8 Successfully built 42d8e120be8f 】再次查看images: [Jack@server200-21 repository]$ docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE develop/ssh v1 42d8e120be8f About a minute ago 387.8 MB docker.cn/docker/centos 7 8efe422e6104 4 weeks ago 224 MB docker.cn/docker/centos centos7 8efe422e6104 4 weeks ago 224 MB docker.cn/docker/centos latest 8efe422e6104 4 weeks ago 224 MB 】启动 [Jack@server200-21 repository]$ docker run -d --name test1 -p 127.0.0.1:10822:22 develop/ssh:v1 0a9e8be52d9e1ee979de02e5afa5ae572d616a30589d265c3f575cb8f69f3e9c (也可以使用本机的随机端口来映射到容器的22端口:) [Jack@server200-21 repository]$ docker run -d --name test1 -p 22 develop/ssh:v1 】查看ssh的端口 [Jack@server200-21 repository]$ docker port test1 22/tcp -> 0.0.0.0:49155 (也可以这样查看:) [Jack@server200-21 repository]$ docker top test1 [Jack@server200-21 repository]$ docker ps test1 】测试ssh连接 [Jack@server200-21 repository]$ ssh -p 10822 admin@127.0.0.1 The authenticity of host ‘[127.0.0.1]:10822 ([127.0.0.1]:10822)‘ can‘t be established. RSA key fingerprint is 48:fc:06:c2:12:e9:b8:6d:1f:91:e5:68:d4:0a:54:4c. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added ‘[127.0.0.1]:10822‘ (RSA) to the list of known hosts. admin@127.0.0.1‘s password: [admin@0a9e8be52d9e ~]$ exit logout Connection to 127.0.0.1 closed. 】删除镜像 [Jack@server200-21 repository]$ docker rmi `docker images |grep develop |grep v1 |awk ‘{print $3}‘` Error response from daemon: Conflict, cannot delete 42d8e120be8f because the running container 0a9e8be52d9e is using it, stop it and use -f to force FATA[0000] Error: failed to remove one or more images 这个image被使用,先stop再rm对应的container的id [Jack@server200-21 repository]$ docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 0a9e8be52d9e develop/ssh:v1 "/usr/sbin/sshd -D" 2 minutes ago Up 2 minutes 127.0.0.1:10822->22/tcp test1 [Jack@server200-21 repository]$ docker stop 0a9e8be52d9e 0a9e8be52d9e [Jack@server200-21 repository]$ docker rm 0a9e8be52d9e 0a9e8be52d9e 删除image [Jack@server200-21 repository]$ docker rmi `docker images |grep develop |grep v1 |awk ‘{print $3}‘` Untagged: develop/ssh:v1 Deleted: 42d8e120be8f70c5085d142f575e0b755d86ee41b5b1d842a19966d4fcfaa96b Deleted: 61d83e0403a8e61c82a5348d54e3efb982176ffcaa6a2e7c42adf5d654fe7b33 Deleted: 1cc76b42819251ddf5fec90b2dd39a847808538a450a3589594000059f13a991 Deleted: 4463e6885b2ee45f22241c511a0d73660dd892560fa6da2f0d96c139cec25c0b Deleted: e48a480c74980331c980b32a6d969380363a0e80aebe07ef90396359d317c3e3 Deleted: 904ed7d476e962601cbbf71885d02d58f44446a9fedfaf1ff76660e33a19be26 Deleted: 06ff76970b4ac0cc853402073b1a2a6599c0785749e49d16c151a4cd1ab65609 Deleted: d6d5d26a325aec67158e59b81517345e23790b50494cbdf34155e214ce708456 Deleted: 65693f134694aa2ab51315f439d15afb02775c9a72fcb8c3e856b6cb63ce7954 Deleted: 26a7e9d912969e1a21c0532121344b8cac232e060ffc0edb237073a9543b852e
标签:docker
原文地址:http://nosmoking.blog.51cto.com/3263888/1612946