docker镜像⾥⾯运⾏服务器,请教⼀下各位,该如何将docker
容器中的镜像跑在服务器上?...
1.先下载centos镜像
[root@docker ~]# docker pull centos
2.启动容器并进⾏配置
启动容器,
[root@docker ~]# docker run -it -d --name test-centos1 centos
d72250ecaa5e3e36226a1edd749f494d9f00eddc4143c81ac3565aa4e551791a
命令注释:-it : 进⾏交互式操作
-d : 等同于 -d=true,容器将会在后台运⾏,不然执⾏⼀次命令后,退出后,便是exit状态了。
--name : 容器启动后的名字,默认不指定,将会随机产⽣⼀个名字。或者使⽤ -name="containers_name"
centos:使⽤的镜像名称
进⼊容器,安装ssh server,以及配置开机启动
[root@docker ~]# docker exec -it test-centos1 /bin/bash
[root@d72250ecaa5e /]# ifconfig
bash: ifconfig: command not found
注:命令最后参数 /bin/bash: 指进⼊容器时执⾏的命令(command)
我们检查了下容器,暂时安装以下必⽤的软件吧 net-tools,openssh-server
[root@d72250ecaa5e /]# yum install openssh-server net-tools -y
创建ssh 所需的⽬录,并在根⽬录创建sshd 启动脚本
复制代码
[root@d72250ecaa5e /]# mkdir -pv /var/run/sshddocker打包镜像
mkdir: created directory '/var/run/sshd'
[root@d72250ecaa5e /]# cat /auto_sshd.sh
#!/bin/bash
/usr/sbin/sshd -D
[root@d72250ecaa5e /]# chmod +x /auto_sshd.sh
复制代码
修改容器内root 的账户密码
[root@d72250ecaa5e /]# echo "root:iloveworld" | chpasswd
⽣成ssh 主机dsa 密钥(不然ssh 该容器时,会出现错误。)
[root@d72250ecaa5e /]# ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key
[root@d72250ecaa5e /]# ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key
我们加⼀个history记录的时间功能吧,这样⽅便后期查看
echo 'export HISTTIMEFORMAT="%F %T `whoami` "' >> /etc/profile
OK,配置基本完毕咯。清理命令历史纪录,之后退出容器。现在可以⽣成⼀个新的docker 镜像了。
3.配置完成后,进⾏打包成新的镜像
复制代码
[root@docker ~]# docker commit test-centos1 centos_sshd:7.0
sha256:6e3330b30dfff5f029f102874e54cfffffbc37dcf2a4eb7304c817148fbc944d
[root@docker ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
centos_sshd 7.0 6e3330b30dff 8 seconds ago 310.1 MB
docker.io/ubuntu latest e4415b714b62 12 days ago 128.1 MB
复制代码
命令注释:commit: 提交⼀个具有新配置的容器成为镜像,后⾯跟容器的name 或者容器Id ,最后是⽣成新镜像的名字
更新:这条命令更⽅便以后启动,如下:
[root@docker ~]# docker commit --change='CMD ["/auto_sshd.sh"]' -c "EXPOSE 22" test-centos1 centos_sshd:7.0 sha256:7bb4efd82c4ff1f241cbc57ee45aab1b05d214b1e9fcd51196696c67d480e70b
命令注释: --change : 将后期使⽤此镜像运⾏容器时的命令参数、开放的容器端⼝提前设置好。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。