(一)安装Docker CE
1. 安装依赖
yum install -y yum-utils device-mapper-persistent-data lvm2
2. 添加aliyun docker-ce yum源
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
3. 重建yum缓存
yum clean all
yum makecache
4. 查看可用的docker版本
yum list docker-ce.x86_64 --showduplicates | sort -r
5. 安装指定版本docker
yum install -y docker-ce-20.10.6-* docker-ce-cli-20.10.6-*.x86_64
(二)启动Docker
1. 临时启动Docker
systemctl start docker
2. 设置开机自动启动
systemctl enable docker
3. 查看Docker运行状态
systemctl status docker
4. 查看Docker容器版本信息
docker version
5. 配置镜像加速器
可以通过修改daemon配置文件/etc/docker/daemon.json来使用加速器(参考阿里云官方帮助文档 https://cr.console.aliyun.com/cn-beijing/instances/mirrors )
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://e7n1ndig.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
6. 下载nginx镜像
docker pull nginx
docker images
7. 启动nginx镜像
docker run -p 80:80 --name my_nginx -d nginx
docker ps -a
8. 通过浏览器访问主机的80端口
9. 进入启动了nginx的Docker容器系统
docker exec -it my_nginx /bin/bash
(三)自定义Dockerfile并构建镜像
1. 编写Dockerfile文件
文件名为Dockerfile,内容如下:
FROM centos:centos7
MAINTAINER myname <myname@gmail.com>
# 安装工具包
RUN yum install -y gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel
# 安装nginx1.14.2
RUN useradd -M -s /sbin/nologin nginx
COPY ./nginx-1.14.2.tar.gz /opt/
WORKDIR /opt/
RUN tar zxvf nginx-1.14.2.tar.gz
RUN mkdir -p /usr/local/nginx
RUN cd nginx-1.14.2 && ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module --with-http_ssl_module --with-http_v2_module --with-http_gzip_static_module --with-http_sub_module && make && make install
# 设置启动脚本
RUN mkdir -p /opt/work/bin
COPY ./start.sh /opt/work/bin
WORKDIR /opt/work/bin
RUN chmod -R 755 /opt/work/bin
# 定义要暴露的端口
EXPOSE 80
# 启动nginx脚本
CMD ["./start.sh"]
2. 构建自定义镜像
下载需要的nginx-1.14.2源码包
wget http://nginx.org/download/nginx-1.14.2.tar.gz
创建start.sh文件,文件内容如下:
#!/bin/bash
/usr/local/nginx/sbin/nginx -g "daemon off;"
构建镜像(注意命令后面有个“点”)
docker build -t my-nginx-server .
docker images
3. 启动容器
docker run -p 8080:80 --name my_nginx2 -d my-nginx-server
docker ps -a