为了账号安全,请及时绑定邮箱和手机立即绑定

Docker容器实战系列操作一~建立属于自己的Ubuntu容器

标签:
Docker

最近自己在学习Docker方面的知识,一是因为公司这边也在用Docker,自己不会,每次都去请教别人总显的很麻烦,自己学会了总算一门技术。并且学习微服务我们总是需要用到容器技术,在这个快速发展的路上,我们还是有必要去学习尝试的。
现在关于基础命令的学习已经算全部完成,但是总体还是说只是了解,还不能达到熟练的目的,并且容器知识还有很多需要去融会贯通的。那么我们就开始实战练习,去掌握这些技术。实战操作也会形成一个系列来写,也是自己的操作过程。希望我们在实战操作后都能顺利的掌握住这门技术。

使用commit命令创建一个新的容器

我们是建立一个ubuntu的容器。

  1. 首先搜索下ubuntu的

docker@ubuntu:~$ docker search ubuntu 
NAME                                                      DESCRIPTION                                     STARS               OFFICIAL            AUTOMATED
ubuntu                                                    Ubuntu is a Debian-based Linux operating sys…   8309                [OK]                
dorowu/ubuntu-desktop-lxde-vnc                            Ubuntu with openssh-server and NoVNC            213                                     [OK]
rastasheep/ubuntu-sshd                                    Dockerized SSH service, built on top of offi…   170                                     [OK]

在这里我们也可以使用docker pull ubuntu 拉取新的版本ubuntu容器。在执行我们的run,但是run在操作的时候会首先检查下是否存在本地镜像,不存在就直接去仓库拉取新的镜像,我们就直接操作镜像即可,并且操作上加上/bin/bash 在运行后直接进入容器里面。

docker@ubuntu:~$ docker run -it --name myubuntu ubuntu /bin/bash 
Unable to find image 'ubuntu:latest' locallylatest: Pulling from library/ubuntu124c757242f8: Pull complete 
2ebc019eb4e2: Pull complete 
dac0825f7ffb: Pull complete 
82b0bb65d1bf: Pull complete 
ef3b655c7f88: Pull complete 
Digest: sha256:72f832c6184b55569be1cd9043e4a80055d55873417ea792d989441f207dd2c7Status: Downloaded newer image for ubuntu:latest
root@61c5b26e974e:/# apt-get update Get:1 http://archive.ubuntu.com/ubuntu bionic InRelease [242 kB]Get:2 http://security.ubuntu.com/ubuntu bionic-security InRelease [83.2 kB]Get:3 http://security.ubuntu.com/ubuntu bionic-security/universe Sources [17.4 kB]

因为我们只是用来创建自己的ubuntu容器 可能需要操作其他的内容,所以我在本地容器中增加了vim操作命令,然后退出容器进行提交

root@61c5b26e974e:/# apt-get install vim root@61c5b26e974e:/# exit

执行提交命令将容器保存为一个新的ubuntu镜像。

docker@ubuntu:~$ docker commit myubuntu myubuntu:latest   
sha256:494bbb7b88af3e761a976facefa3a276cb3908cc4dac98abcdb3f91d0cb19e63

使用DockerFile创建需要的容器

  1. 创建需要的文件与脚本文件 然后通过DockerFile文件映射到容器中

docker@ubuntu:~/Desktop/sshd_ubuntu$ touch Dockerfile run.sh 
docker@ubuntu:~/Desktop/sshd_ubuntu$ ll
total 8drwxr-xr-x 2 docker docker 4096 Sep  2 05:43 ./
drwxr-xr-x 4 docker docker 4096 Sep  2 05:42 ../
-rw-r--r-- 1 docker docker    0 Sep  2 05:43 Dockerfile
-rw-r--r-- 1 docker docker    0 Sep  2 05:43 run.sh
docker@ubuntu:~/Desktop/sshd_ubuntu$ vim run.sh
  1. 写DockerFile文件内容

# 设置继承镜像FROM ubuntu:14.04# 提供一些作者的信息MAINTAINER from frq# 下面是开始运行的命令 RUN  echo "deb http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse" > /etc/apt/sources.listRUN  echo "deb http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse" > /etc/apt/sources.listRUN  echo "deb http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse" > /etc/apt/sources.listRUN  echo "deb http://mirrors.aliyun.com/ubuntu/ trusty-proposed main restricted universe multiverse" > /etc/apt/sources.listRUN  echo "deb http://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse" > /etc/apt/sources.listRUN  echo "deb-src http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse" > /etc/apt/sources.listRUN  echo "deb-src http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse" > /etc/apt/sources.listRUN  echo "deb-src http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse" > /etc/apt/sources.listRUN  echo "deb-src http://mirrors.aliyun.com/ubuntu/ trusty-proposed main restricted universe multiverse" > /etc/apt/sources.listRUN  echo "deb-src http://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse"> /etc/apt/sources.listRUN  apt-get update#安装ssh服务RUN  apt-get update
RUN  apt-get install -y openssh-server
RUN  mkdir -p /var/run/sshd
RUN  mkdir -p /root/.ssh#取消pam限制RUN sed -ri 's/session required pam_loginuid.so/#session required pam_loginuid.so/g' /etc/pam.d/sshd#复制配置文件到响应的位置,并执行脚本可执行权限ADD authorized_keys /root/.ssh/authorized_keys
ADD run.sh /run.sh 
RUN chmod 755 /run.sh#开放端口EXPOSE 22#设置自启动命令CMD ["/run.sh"]

最后一步 我们将内容打包成docker文件,最后使用命令查看下即可

docker@ubuntu:~/Desktop/sshd_ubuntu$ docker build -t sshd:dockerfile .
docker@ubuntu:~/Desktop/sshd_ubuntu$ docker images 
''REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
sshd                dockerfile          5abaa0c085ab        37 seconds ago      251MB

         

             




作者:LuckQI
链接:https://www.jianshu.com/p/85bee20474a1


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消