1.删除所有的容器 docker container rm -f `docker ps -a -q`
2.宿主机新建目录 mkdir -p /opt/vol/mysql /opt/vol/html
3.启动容器 docker container run -it –name=”old_centos” -v /opt/vol/mysql:/var/lib/mysql -v /opt/vol/html:/var/www/html centos:7
4.优化yum源 mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
curl http://mirrors.aliyun.com/repo/Centos-7.repo -o /etc/yum.repos.d/CentOS-Base.repo
yum clean all && yum makecache
5.安装软件 yum install openssh-server httpd mysql mysql-server php php-mysql -y
6. 启动sshd
mkdir /var/run/sshd
echo ‘UseDNS no’ >> /etc/ssh/sshd_config
sed -i -e ‘/pam_loginuid.so/d’ /etc/pam.d/sshd
echo ‘root:123456’ | chpasswd
/usr/bin/ssh-keygen -A

补充:sshd镜像使用
docker commit 620dba4a45d2 centos_ssh
运行 docker run -d -p 2222:22 c7ssh /usr/sbin/sshd -D 

7./etc/init.d/mysqld start
8.启动脚本 cd /opt/vol/html && vim init.sh
#!/bin/bash
/etc/init.d/mysqld start
/etc/init.d/httpd start
/usr/bin/sshd -D

其他的启动脚本
vim /init.sh
service nginx start
service nginx restart
service php-fpm7 start
service php-fpm7 restart
tail -f /etc/hosts
#最后一步是吼住不动了

提交容器
docker commit

启动容器
docker container run -d –name=”old_centos—_1″ -v /opt/vol/mysql:/var/lib/mysql -v /opt/vol/html:/var/www/html -p 2222:22 -p 8888:80 -p 33060:3306 容器名 /var/www/html/init.sh

1.基于容器的镜像制作
1.1 启动基础镜像
docker run -it –name=”cetnos1″ centos:6.9
1.2 安装需要的软件包,并且启动测试
mv /etc/yum.repos.d/*.repo /tmp
echo -e “[ftp]\nname=ftp\nbaseurl=ftp://172.17.0.1/centos6.9\nqpgcheck=0″>/etc/yum.repos.d/ftp.repo
yum makecache fast && yum install openssh-server -y
/etc/init.d/sshd start —->重要:ssh第一次启动是,需要生成密钥,生成pam验证配置文件
/etc/init.d/sshd stop
1.3 制作镜像
docker commit centos1 myname/centos6.9_sshd:v1
1.4 启动下制作好的容器
docker container run -d –name=sshd_2222 -p 2222:22 centos1 /usr/sbin/sshd -D —->夯起来

1.查看日志 docker container logs 容器id (其他参数 -tf –tail 10 )
2.宿主机文件拷贝到容器中 docker container cp [index.html nginx:/usr/share/nginx/html/] 反过来可以拷贝到本地
3.卷映射 docker run -d –name=”n2″ -p 81:80 -v /opt/html:/usr/share/nginx/html nginx
4.模拟数据卷容器
I.宿主机创建目录
mkdir -p /opt/Volume/a
mkdir -p /opt/Volume/b
touch /opt/Volume/a/a.txt
touch /opt/Volume/b/b.txt
II.启动数据卷容器
docker run -it –name “nginx_volume” -v /opt/Volume/a:/opt/a -v /opt/Volume/b:/opt/b centos:7.6.1810 /bin/bash
III.使用数据卷容器
docker run -d -p 8085:80 –volumes-from nginx_volume –name “n80” nginx

/usr/bin/sshd -D 前台夯在那里了

1.查看网桥,如果没有brctl show命令,则需要安装,执行命令:yum install -y bridge-utils,每运行一个docker容器都会创建一个网桥接口
2.查看路由 执行命令:ip ro li
3、查看docker网络地址 如果没有ifconfig命令,则需要安装,执行命令:yum install -y net-tools

-P为端口映射,如果 -P 后没有参数会随机映射,有参数为制定映射
docker run -d -p –name myngnix3 hub.c.163.com/library/nginx
docker run -d -p 65:80 –name myngnix4 hub.c.163.com/library/nginx

指定主机端口 -p hostPort:containerPort
指定主机IP地址+主机端口+容器端口 -p ip:hostPort:containerPort
指定主机IP地址+容器端口 -p ip::containerPort
指定多端口:(主机端口+容器端口)+ (主机端口+容器端口)
-p hostPort:containerPort
-p hostPort:containerPort
-p hostPort:containerPort/udp
-p 81:80 -p 443:443
Read More →