玩docker?别人告诉我玩docker就是玩dockerfile,于是好好玩玩dockerfile吧,docker又有一段时间
没有使用了,写在日志上,以后可以回来复习看看。
编辑Dockerfile
[iyunv@salt-master ~]# mkdir centos6
[iyunv@salt-master ~]# cd centos6/
[iyunv@salt-master centos6]# ls
[iyunv@salt-master centos6]# touch Dockerfile
[iyunv@salt-master centos6]# vim Dockerfile
# This is a comment
FROM centos:centos6
MAINTAINER yanconggod <516249940@qq.com>
RUN yum install -y openssh-server sudo vim
RUN sed -i 's/UsePAM yes/UsePAM no/g' /etc/ssh/sshd_config
RUN useradd yancongadmin
RUN echo "yancongadmin:123456" | chpasswd
RUN echo "yancongadmin ALL=(ALL) ALL" >> /etc/sudoers
RUN ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key
RUN ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key
#暴露端口
RUN mkdir /var/run/sshd
EXPOSE 22
CMD ["/usr/sbin/sshd", "-D"]
[iyunv@salt-master centos6]# sudo docker build -t centos6-ssh .
Sending build context to Docker daemon 2.048 kB
Step 1 : FROM centos:centos6
Trying to pull repository docker.io/library/centos ...
centos6: Pulling from docker.io/library/centos
32c4f4fef1c6: Pull complete
Digest: sha256:1092df198d3da4faccc0660941b763ce5adf133b0ec71701b760d6f173c1f47b
Status: Downloaded newer image for docker.io/centos:centos6
---> 8315978ceaaa
Step 2 : MAINTAINER yanconggod <516249940@qq.com>
---> Running in d708ef81bea9
---> 649a7b45b358
Removing intermediate container d708ef81bea9
Step 3 : RUN yum install -y openssh-server sudo vim
---> Running in a7ae7329d040
Loaded plugins: fastestmirror, ovl
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package openssh-server.x86_64 0:5.3p1-118.1.el6_8 will be installed
--> Processing Dependency: openssh = 5.3p1-118.1.el6_8 for package: openssh-server-5.3p1-118.1.el6_8.x86_64
--> Processing Dependency: /sbin/service for package: openssh-server-5.3p1-118.1.el6_8.x86_64
--> Processing Dependency: libwrap.so.0()(64bit) for package: openssh-server-5.3p1-118.1.el6_8.x86_64
--> Processing Dependency: libfipscheck.so.1()(64bit) for package: openssh-server-5.3p1-118.1.el6_8.x86_64
---> Package sudo.x86_64 0:1.8.6p3-24.el6 will be installed
---> Package vim-enhanced.x86_64 2:7.4.629-5.el6 will be installed
--> Processing Dependency: vim-common = 2:7.4.629-5.el6 for package: 2:vim-enhanced-7.4.629-5.el6.x86_64
--> Processing Dependency: perl(:MODULE_COMPAT_5.10.1) for package: 2:vim-enhanced-7.4.629-5.el6.x86_64
--> Processing Dependency: libperl.so()(64bit) for package: 2:vim-enhanced-7.4.629-5.el6.x86_64
--> Processing Dependency: libgpm.so.2()(64bit) for package: 2:vim-enhanced-7.4.629-5.el6.x86_64
--> Running transaction check
---> Package fipscheck-lib.x86_64 0:1.2.0-7.el6 will be installed
--> Processing Dependency: /usr/bin/fipscheck for package: fipscheck-lib-1.2.0-7.el6.x86_64
---> Package gpm-libs.x86_64 0:1.20.6-12.el6 will be installed
---> Package initscripts.x86_64 0:9.03.53-1.el6.centos.1 will be installed
--> Processing Dependency: util-linux-ng >= 2.16 for package: initscripts-9.03.53-1.el6.centos.1.x86_64
--> Processing Dependency: udev >= 125-1 for package: initscripts-9.03.53-1.el6.centos.1.x86_64
--> Processing Dependency: sysvinit-tools >= 2.87-6 for package: initscripts-9.03.53-1.el6.centos.1.x86_64
--> Processing Dependency: plymouth for package: initscripts-9.03.53-1.el6.centos.1.x86_64
--> Processing Dependency: /sbin/pidof for package: initscripts-9.03.53-1.el6.centos.1.x86_64
--> Processing Dependency: /sbin/ip for package: initscripts-9.03.53-1.el6.centos.1.x86_64
--> Processing Dependency: /sbin/blkid for package: initscripts-9.03.53-1.el6.centos.1.x86_64
--> Processing Dependency: /sbin/arping for package: initscripts-9.03.53-1.el6.centos.1.x86_64
---> Package openssh.x86_64 0:5.3p1-118.1.el6_8 will be installed
---> Package perl.x86_64 4:5.10.1-141.el6_7.1 will be installed
--> Processing Dependency: perl(version) for package: 4:perl-5.10.1-141.el6_7.1.x86_64
--> Processing Dependency: perl(Pod::Simple) for package: 4:perl-5.10.1-141.el6_7.1.x86_64
--> Processing Dependency: perl(Module::Pluggable) for package: 4:perl-5.10.1-141.el6_7.1.x86_64
---> Package perl-libs.x86_64 4:5.10.1-141.el6_7.1 will be installed
---> Package tcp_wrappers-libs.x86_64 0:7.6-58.el6 will be installed
---> Package vim-common.x86_64 2:7.4.629-5.el6 will be installed
--> Processing Dependency: vim-filesystem for package: 2:vim-common-7.4.629-5.el6.x86_64
--> Running transaction check
---> Package fipscheck.x86_64 0:1.2.0-7.el6 will be installed
---> Package iproute.x86_64 0:2.6.32-54.el6 will be installed
--> Processing Dependency: iptables >= 1.4.5 for package: iproute-2.6.32-54.el6.x86_64
--> Processing Dependency: libxtables.so.4()(64bit) for package: iproute-2.6.32-54.el6.x86_64
---> Package iputils.x86_64 0:20071127-21.el6 will be installed
---> Package perl-Module-Pluggable.x86_64 1:3.90-141.el6_7.1 will be installed
---> Package perl-Pod-Simple.x86_64 1:3.13-141.el6_7.1 will be installed
--> Processing Dependency: perl(Pod::Escapes) >= 1.04 for package: 1:perl-Pod-Simple-3.13-141.el6_7.1.x86_64
---> Package perl-version.x86_64 3:0.77-141.el6_7.1 will be installed
---> Package plymouth.x86_64 0:0.8.3-27.el6.centos.1 will be installed
--> Processing Dependency: system-logos for package: plymouth-0.8.3-27.el6.centos.1.x86_64
--> Processing Dependency: libdrm_radeon.so.1()(64bit) for package: plymouth-0.8.3-27.el6.centos.1.x86_64
--> Processing Dependency: libdrm_nouveau.so.1()(64bit) for package: plymouth-0.8.3-27.el6.centos.1.x86_64
--> Processing Dependency: libdrm_intel.so.1()(64bit) for package: plymouth-0.8.3-27.el6.centos.1.x86_64
--> Processing Dependency: libdrm.so.2()(64bit) for package: plymouth-0.8.3-27.el6.centos.1.x86_64
---> Package sysvinit-tools.x86_64 0:2.87-6.dsf.el6 will be installed
---> Package udev.x86_64 0:147-2.73.el6_8.2 will be installed
--> Processing Dependency: hwdata for package: udev-147-2.73.el6_8.2.x86_64
---> Package util-linux-ng.x86_64 0:2.17.2-12.24.el6_8.1 will be installed
--> Processing Dependency: libuuid = 2.17.2-12.24.el6_8.1 for package: util-linux-ng-2.17.2-12.24.el6_8.1.x86_64
--> Processing Dependency: libblkid = 2.17.2-12.24.el6_8.1 for package: util-linux-ng-2.17.2-12.24.el6_8.1.x86_64
--> Processing Dependency: kernel >= 2.6.32-642 for package: util-linux-ng-2.17.2-12.24.el6_8.1.x86_64
---> Package vim-filesystem.x86_64 2:7.4.629-5.el6 will be installed
--> Running transaction check
---> Package hwdata.noarch 0:0.233-16.1.el6 will be installed
---> Package iptables.x86_64 0:1.4.7-16.el6 will be installed
--> Processing Dependency: policycoreutils for package: iptables-1.4.7-16.el6.x86_64
---> Package kernel.x86_64 0:2.6.32-642.11.1.el6 will be installed
--> Processing Dependency: kernel-firmware >= 2.6.32-642.11.1.el6 for package: kernel-2.6.32-642.11.1.el6.x86_64
--> Processing Dependency: grubby >= 7.0.4-1 for package: kernel-2.6.32-642.11.1.el6.x86_64
--> Processing Dependency: dracut-kernel >= 004-408.el6 for package: kernel-2.6.32-642.11.1.el6.x86_64
--> Processing Dependency: /sbin/new-kernel-pkg for package: kernel-2.6.32-642.11.1.el6.x86_64
--> Processing Dependency: /sbin/new-kernel-pkg for package: kernel-2.6.32-642.11.1.el6.x86_64
---> Package libblkid.x86_64 0:2.17.2-12.24.el6 will be updated
---> Package libblkid.x86_64 0:2.17.2-12.24.el6_8.1 will be an update
---> Package libdrm.x86_64 0:2.4.65-2.el6 will be installed
--> Processing Dependency: libpciaccess.so.0()(64bit) for package: libdrm-2.4.65-2.el6.x86_64
---> Package libuuid.x86_64 0:2.17.2-12.24.el6 will be updated
---> Package libuuid.x86_64 0:2.17.2-12.24.el6_8.1 will be an update
---> Package perl-Pod-Escapes.x86_64 1:1.04-141.el6_7.1 will be installed
---> Package redhat-logos.noarch 0:60.0.14-12.el6.centos will be installed
--> Running transaction check
---> Package dracut-kernel.noarch 0:004-409.el6_8.2 will be installed
--> Processing Dependency: dracut = 004-409.el6_8.2 for package: dracut-kernel-004-409.el6_8.2.noarch
---> Package grubby.x86_64 0:7.0.15-7.el6 will be installed
---> Package kernel-firmware.noarch 0:2.6.32-642.11.1.el6 will be installed
---> Package libpciaccess.x86_64 0:0.13.4-1.el6 will be installed
---> Package policycoreutils.x86_64 0:2.0.83-30.1.el6_8 will be installed
--> Processing Dependency: libdbus-glib-1.so.2()(64bit) for package: policycoreutils-2.0.83-30.1.el6_8.x86_64
--> Running transaction check
---> Package dbus-glib.x86_64 0:0.86-6.el6 will be installed
---> Package dracut.noarch 0:004-409.el6_8.2 will be installed
--> Processing Dependency: kbd for package: dracut-004-409.el6_8.2.noarch
--> Running transaction check
---> Package kbd.x86_64 0:1.15-11.el6 will be installed
--> Processing Dependency: kbd-misc = 1.15-11.el6 for package: kbd-1.15-11.el6.x86_64
--> Running transaction check
---> Package kbd-misc.noarch 0:1.15-11.el6 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
================================================================================
Package Arch Version Repository Size
================================================================================
Installing:
openssh-server x86_64 5.3p1-118.1.el6_8 updates 328 k
sudo x86_64 1.8.6p3-24.el6 base 710 k
vim-enhanced x86_64 2:7.4.629-5.el6 base 1.0 M
Installing for dependencies:
dbus-glib x86_64 0.86-6.el6 base 170 k
dracut noarch 004-409.el6_8.2 updates 127 k
dracut-kernel noarch 004-409.el6_8.2 updates 28 k
fipscheck x86_64 1.2.0-7.el6 base 14 k
fipscheck-lib x86_64 1.2.0-7.el6 base 8.3 k
gpm-libs x86_64 1.20.6-12.el6 base 28 k
grubby x86_64 7.0.15-7.el6 base 43 k
hwdata noarch 0.233-16.1.el6 base 1.3 M
initscripts x86_64 9.03.53-1.el6.centos.1 updates 947 k
iproute x86_64 2.6.32-54.el6 base 389 k
iptables x86_64 1.4.7-16.el6 base 254 k
iputils x86_64 20071127-21.el6 base 120 k
kbd x86_64 1.15-11.el6 base 264 k
kbd-misc noarch 1.15-11.el6 base 923 k
kernel x86_64 2.6.32-642.11.1.el6 updates 32 M
kernel-firmware noarch 2.6.32-642.11.1.el6 updates 28 M
libdrm x86_64 2.4.65-2.el6 base 136 k
libpciaccess x86_64 0.13.4-1.el6 base 24 k
openssh x86_64 5.3p1-118.1.el6_8 updates 276 k
perl x86_64 4:5.10.1-141.el6_7.1 base 10 M
perl-Module-Pluggable x86_64 1:3.90-141.el6_7.1 base 40 k
perl-Pod-Escapes x86_64 1:1.04-141.el6_7.1 base 33 k
perl-Pod-Simple x86_64 1:3.13-141.el6_7.1 base 213 k
perl-libs x86_64 4:5.10.1-141.el6_7.1 base 579 k
perl-version x86_64 3:0.77-141.el6_7.1 base 52 k
plymouth x86_64 0.8.3-27.el6.centos.1 base 89 k
policycoreutils x86_64 2.0.83-30.1.el6_8 updates 663 k
redhat-logos noarch 60.0.14-12.el6.centos base 15 M
sysvinit-tools x86_64 2.87-6.dsf.el6 base 60 k
tcp_wrappers-libs x86_64 7.6-58.el6 base 62 k
udev x86_64 147-2.73.el6_8.2 updates 358 k
util-linux-ng x86_64 2.17.2-12.24.el6_8.1 updates 1.6 M
vim-common x86_64 2:7.4.629-5.el6 base 6.7 M
vim-filesystem x86_64 2:7.4.629-5.el6 base 15 k
Updating for dependencies:
libblkid x86_64 2.17.2-12.24.el6_8.1 updates 118 k
libuuid x86_64 2.17.2-12.24.el6_8.1 updates 71 k
Complete!
---> eedc42d0060d
Removing intermediate container a7ae7329d040
Step 4 : RUN sed -i 's/UsePAM yes/UsePAM no/g' /etc/ssh/sshd_config
---> Running in 350bb903851d
---> 915ad23febbf
Removing intermediate container 350bb903851d
Step 5 : RUN useradd yancongadmin
---> Running in e2cf736e0ebe
---> 2fd832203bb9
Removing intermediate container e2cf736e0ebe
Step 6 : RUN echo "yancongadmin:123456" | chpasswd
---> Running in ee32ff55c577
---> 4277f13e5403
Removing intermediate container ee32ff55c577
Step 7 : RUN echo "yancongadmin ALL=(ALL) ALL" >> /etc/sudoers
---> Running in ec98c90c7349
---> 430681d7c78c
Removing intermediate container ec98c90c7349
Step 8 : RUN ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key
---> Running in bec80e8874aa
Enter passphrase (empty for no passphrase): Enter same passphrase again: Generating public/private dsa key pair.
Your identification has been saved in /etc/ssh/ssh_host_dsa_key.
Your public key has been saved in /etc/ssh/ssh_host_dsa_key.pub.
The key fingerprint is:
5c:df:81:fa:4e:d0:88:17:5b:54:b8:c9:f5:f6:b6:2e root@9aac06993d69
The key's randomart image is:
+--[ DSA 1024]----+
| .o. |
| .... |
| o.o+.. |
| . o O+. .o|
| S * o ...|
| . o o|
| .. o ..|
| o E . |
| .. . o. |
+-----------------+
---> 819b6a95660f
Removing intermediate container bec80e8874aa
Step 9 : RUN ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key
---> Running in c8ee36a6e147
Enter passphrase (empty for no passphrase): Enter same passphrase again: 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:
ee:c5:d7:52:25:5f:24:0f:99:2a:e3:e6:e6:76:1e:b5 root@9aac06993d69
The key's randomart image is:
+--[ RSA 2048]----+
| oo.|
| o= |
| .. .. +|
| o . +.|
| S. o o .|
| . .o + . |
| .oo + E.. |
| . .+..o |
| .+.o. |
+-----------------+
---> dca75146eecc
Removing intermediate container c8ee36a6e147
Step 10 : RUN mkdir /var/run/sshd
---> Running in ef3191191e35
---> d639dafc5ac5
Removing intermediate container ef3191191e35
Step 11 : EXPOSE 22
---> Running in 55bc0ffaf9d6
---> 52b3d14fc2a0
Removing intermediate container 55bc0ffaf9d6
Step 12 : CMD /usr/sbin/sshd -D
---> Running in c92d9e9d350e
---> f6bb69ea7020
Removing intermediate container c92d9e9d350e
Successfully built f6bb69ea7020
[iyunv@salt-master centos6]#
1
2
3
4
5
6
7
生成了一个docker镜像文件名为 f6bb69ea7020
[iyunv@salt-master centos6]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
centos6-ssh latest f6bb69ea7020 39 minutes ago 556.4 MB
docker.io/jdeathe/centos-ssh latest f6aa254214ab 31 hours ago 214.7 MB
docker.io/centos centos6 8315978ceaaa 4 weeks ago 194.6 MB
[iyunv@salt-master centos6]#
1
2
3
4
5
6
7
8
创建第一个容器,我们把它叫my-first-docker
[iyunv@salt-master centos6]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
[iyunv@salt-master centos6]# docker run -d -P --name=my-first-docker centos6-ssh
f8aa111d00667d2d9f1770873f4b9638ec106c178cd7c67bac35a59c68309e6e
[iyunv@salt-master centos6]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
f8aa111d0066 centos6-ssh "/usr/sbin/sshd -D" 28 seconds ago Up 26 seconds 0.0.0.0:32768->22/tcp my-first-docker
登录my-first-docker容器
[iyunv@salt-master centos6]# ssh yancongadmin@172.17.0.2
The authenticity of host '172.17.0.2 (172.17.0.2)' can't be established.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '172.17.0.2' (RSA) to the list of known hosts. yancongadmin@172.17.0.2's password:
[yancongadmin@f8aa111d0066 ~]$ who
yancongadmin pts/0 2016-12-06 07:17 (172.17.0.1)
另外我的电脑想登录my-first-docker容器,该怎么办呢,使用暴露的端口进行访问
我创建过了端口映射,就使用宿主的端口即可
[iyunv@salt-master centos6]# docker port my-first-docker 22
0.0.0.0:32768
使用另外一台机器进行登录my-first-docker容器
[iyunv@salt-minion01 sudoers.d]# ssh yancongadmin@10.0.0.177 -p 32768
The authenticity of host '[10.0.0.177]:32768 ([10.0.0.177]:32768)' can't be established.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '[10.0.0.177]:32768' (RSA) to the list of known hosts. yancongadmin@10.0.0.177's password:
Last login: Tue Dec 6 07:17:46 2016 from 172.17.0.1
[yancongadmin@f8aa111d0066 ~]$ who
yancongadmin pts/0 2016-12-06 07:23 (10.0.0.199)
顺便查看一下我的vim是否安装好了
[yancongadmin@f8aa111d0066 ~]$ rpm -qa |grep vim
vim-minimal-7.4.629-5.el6.x86_64
vim-filesystem-7.4.629-5.el6.x86_64
vim-enhanced-7.4.629-5.el6.x86_64
vim-common-7.4.629-5.el6.x86_64