Docker二所镜像创作
发布时间:2022-04-06 17:17:36 所属栏目:MySql教程 来源:互联网
导读:Docker二所镜像制作: 1、dockerfile 里不能有交互式命令。 FROM centos:6.9 加载镜像 RUN curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo //base源优化 RUN curl -o /etc/yum.repos.d/epel.repo // EPEL (Ext
Docker二所镜像制作: 1、dockerfile 里不能有交互式命令。 FROM centos:6.9 加载镜像 RUN curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo //base源优化 RUN curl -o /etc/yum.repos.d/epel.repo ![]() // EPEL (Extra Packages for Enterprise Linux)(http://fedoraproject.org/wiki/EPEL) 是由 Fedora 社区打造,为 RHEL 及衍生发行版如 CentOS、Scientific Linux 等提供高质量软件包的项目. RUN (类似docker run的操作)启动一个临时容器,产生文件变化,提交临时镜像,保留变化,删除临时容器。 RUN 基于上面的临时镜像,启动一个临时容器,产生文件变化,再次 提交临时镜像,保留变化,删除临时容器。直到最有一个临时镜像保留下来。 RUN echo "192.169.11.2 mirrors.aliyun.com" >>/etc/hosts 劫持host,每次启动容器,hosts都会被自动改为容器名,要生效,这个RUN必须是 最后一条RUN,或把所有RUN通过&& 连成一条命令,这样作为最后一个临时镜像,会保留下来。 ADD run.sh /run.sh //这个不会启动临时容器,所以不会改hosts。 如果是URL或压缩包,会自动下载或自动解压 RUN 775 /run.sh CMD ["/bin/bash","/run.sh"] 2、docker image prune 删除没有名字也没有版本的镜像,怎么会产生名字和TAG为<none>的镜像?<----docker image rm -f 正在运行的镜像;或dockerfile构建一半的时候Ctrl+c也会产生。 3、 docker run -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7 docker run -p 3306:3306 --name mysql -v /usr/local/docker/mysql/conf:/etc/mysql -v /usr/local/docker/mysql/logs:/var/log/mysql -v /usr/local/docker/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7 -v:主机和容器的目录映射关系,":"前为主机目录,之后为容器目录 通过ENV环境变量 MYSQL_ROOT_PASSWORD,来设置MySQL初始密码,在 docker run 通过 -e MYSQL_ROOT_PASSWORD=111111可以设定该容器的运行时密码。 4、使用ADD,tar包下载到本地,使用ADD自动解压加到镜像中,copy则不会解压。 5、ADD yum install openssh-server -y //在脚本service sshd start, ssh root@192.168.1.1 -p 22 //因为 没有密码还是不能通过ssh登录,需要 echo "123456" | passwd --stdin root // 更新用户密码信息,适用于shell脚本,非交互式设置root密码,或使用脚本变量$1用户设置密码。失败 问题原因之一就是出在了密码中有"!"。继续测试echo命令和"!",知道了"!"在echo中是有不同意义的,如果要输出"!",就需要""来转译。 6、 docker容器开启多个服务,最简单的就是把多个命令放到一个启动脚本里面,另外就是使用进程管理工具,例如使用supervisor来管理容器中的多个进程,dockerfile中CMD ["/usr/bin/supervisord"],通过修改/etc/supervisor/conf.d/supervisord.conf配置文件启动多个服务; (编辑:PHP编程网 - 黄冈站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |