2. 容器基本管理
2.0 容器的类型:
工具类: vim
[root@gukai vim]# docker run -it --name="test_vim" bb41d99ad12f
服务类:nginx
[root@gukai ~]# docker run -d -p 8080:80 --name="discuz" nginx:1.14
2.1容器的多累启动方式:
(1)交互式启动
[root@gukai ~]# docker run -it --name "testcentos" centos:6.9 /bin/bash
主要针对于工具类的容器, 一旦exit容器,容器就自动关闭
(2)守护式启动
1.交互启动容易+ctrl+p+q
[root@gukai ~]# docker run -it --name "testcentos" centos:6.9 /bin/bash
按住 CRTL +P +Q
[root@gukai ~]# docker attach testcentos
#再次进入容器内的镜像进程中
2.2. 死循环
2.3. 服务前端运行
sshd -D
nginx -g ""
[root@gukai ~]# docker run -it --name "old_sshv1" centos:6.9 /bin/bash [root@2044a497987c /]# passwd [root@2044a497987c /]# /etc/init.d/sshd start #重要:ssh第一次启动时,需要生成密钥,生成pam生成验证 [root@2044a497987c /]# /usr/sbin/sshd -D #"hang"运行sshd,并丢到后台 按住 CRTL +P +Q #退出到原来的宿主机上 [root@gukai ~]# docker commit old_sshv1 oldgukai/sshd:v1 #创建一个新的镜像 1.启动一个基础容器 2.安装所需要的应用 3.让应用hang运行
docker stop
docker kill
docker start -i
docker restart 容器ID|容器名字
docker rm 容器ID|容器名字
docker rm -f `docker ps -a -q`
dockerfile高级使用说明
基本功能:
FROM
RUN
CMD
ENTRYPOINT
常用功能:
EXPOSE
USER
ENV
ADD
COPY
VOLUME
WORKDIR
ONBUILD
小练习:
1. 如何双系统: sshd +httpd
[root@gukai openssh]# mkdir -p /opt/Docketfile/app/openssh [root@gukai openssh]# cat Dockerfile FROM centos:6.9 RUN mv /etc/yum.repos.d/*.repo /tmp RUN echo -e "[ftp]\nname=ftp\nbaseurl=ftp://192.168.181.128/pub/centos6\ngpgcheck=0">/etc/yum.repos.d/ftp.repo RUN yum makecache fast && yum install openssh-server -y RUN yum install -y vim RUN yum install -y httpd RUN echo "123"|passwd --stdin root RUN /etc/init.d/sshd start EXPOSE 22 EXPOSE 80 ADD ssh_httpd.sh /opt/ssh_httpd.sh CMD ["/bin/bash","/opt/ssh_httpd.sh"] [root@gukai openssh]# cat ssh_httpd.sh #!bin/bash /etc/init.d/httpd start /usr/sbin/sshd -D
#############以上是自定义基于centsos6.9的镜像自定义一个安装好了ssh 和httpd服务的镜像
#注意 sshd 服务一定要开启, 一定要设置好密码 EXPOSE 22 EXPOSE 80 端口一定要打开
#注意 这次的CMD 使用的是脚本的形式开启的
[root@gukai openssh]# docker build -t "gukai/ssh_httpd:v1" /opt/Docketfile/app/openssh
#开始制作镜像文件
[root@gukai openssh]# docker run -it -p 8080:80 -p 2222:22 --name "testssh" gukai/ssh_httpd:v1 /bin/bash
#开启docker的镜像文件到docker内
2. 双系统: sshd +httpd +volumns
[root@gukai openssh]# mkdir -p /opt/Docketfile/app/ssh_httpd [root@gukai openssh]# cat Dockerfile FROM centos:6.9 RUN mv /etc/yum.repos.d/*.repo /tmp RUN echo -e "[ftp]\nname=ftp\nbaseurl=ftp://192.168.181.128/pub/centos6\ngpgcheck=0">/etc/yum.repos.d/ftp.repo RUN yum makecache fast && yum install openssh-server -y RUN yum install -y vim RUN yum install -y httpd RUN echo "123"|passwd --stdin root RUN /etc/init.d/sshd start EXPOSE 22 EXPOSE 80 ADD ssh_httpd.sh /opt/ssh_httpd.sh VOLUME /var/www/html CMD ["/bin/bash","/opt/ssh_httpd.sh"] [root@gukai openssh]# cat ssh_httpd.sh #!bin/bash /etc/init.d/httpd start /usr/sbin/sshd -D
#这里的是可以直接吧容器内的数据保存在自己的宿主机上,查看使用的是 inspect 命令可以看到