容器子进程是上帝进程( PID == 1 )
容器上帝进程不能关闭
在容器的所有服务都放在前台运行,容器在后台运行
镜像制作
commit打包镜像
docker commit 容器ID 新镜像名称:标签
[root@docker-0001 ~]# docker run -it centos:latest #创建容器
[root@e95a7b4bcfc1 /]# rm -f /etc/yum.repos.d/*.repo #删除之前的yum
[root@e95a7b4bcfc1 /]# curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.myhuaweicloud.com/repo/CentOS-Base-7.repo #重新下载
yum % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 1737 100 1737 0 0 104k 0 --:--:-- --:--:-- --:--:-- 106k
[root@e95a7b4bcfc1 /]# yum install -y net-tools vim-enhanced tree bash-completion iproute psmisc && yum clean all #下载软件,清理缓存
[root@e95a7b4bcfc1 /]# exit #退出容器
exit
[root@docker-0001 ~]# docker commit e95a7b4bcfc1 myos:latest #打包镜像,容器ID根据创建容器时生成的
sha256:165672a364a32e69d125ffae9fc90b33ac8bba8b6a5a339dcb7b4ba9c6a4cf62
Dockerfile打包镜像
Dockerfile语法
语法指令 | 语法说明 |
---|---|
FROM | 基础镜像 |
RUN | 制作镜像时执行的命令,可以有多个 |
ADD | 复制文件到镜像,自动解压 |
COPY | 复制文件到镜像,不解压 |
EXPOSE | 声明开放的端口 |
ENV | 设置容器启动后的环境变量 |
WORKDIR | 定义容器默认工作目录(等于cd) |
CMD | 容器启动时执行的命令,仅可以有一条CMD |