Docker:
- 菜鸟教程描述的很详细,以下是自己手动安装过程记录和问题补充。
- 菜鸟教程:https://www.runoob/docker/centos-docker-install.html
文章目录
- Docker:
- 1. docker安装
- 2. docker安装nginx
- 3. nginx容器.conf文件配置
1. docker安装
- 卸载旧版本
$ sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
- 安装 Docker Engine-Community
- 使用 Docker 仓库进行安装
在新主机上首次安装 Docker Engine-Community 之前,需要设置 Docker 仓库。从仓库安装和更新 Docker。 - 设置仓库
安装所需的软件包。yum-utils 提供了 yum-config-manager ,并且 device mapper 存储驱动程序需要 device-mapper-persistent-data 和 lvm2。
$ sudo yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
- 设置yum源-阿里云
$ sudo yum-config-manager \
--add-repo \
http://mirrors.aliyun/docker-ce/linux/centos/docker-ce.repo
error:
这里我设置的yum源有报错:Error: Failed to download metadata for repo 'AppStream'
# cd /etc/yum.repos.d/
# cp CentOS-Base.repo /home/
# rm CentOS* --谨慎操作,这里只保留CentOS-Base.repo文件。
# 下载新的 CentOS-Base.repo 到 /etc/yum.repos.d/
# wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun/repo/Centos-vault-8.5.2111.repo
# yum clean all && yum makecache --清理缓存&&生成缓存
- yum源不删除的解决方法,这位博主说的好:
我们要养成修改内容时使用注释而不是删除的操作方法,用来对比前后差异,出问题了取消掉注释就可以了。
https://wwwblogs/bpzblog/p/13918199.html - 将更新后的
CentOS-Base.repo
文件中的[AppStream]
模块更新至CentOS-AppStream.repo
文件中。
- 安装 Docker Engine-Community
安装最新版本的 Docker Engine-Community 和 containerd
$ sudo yum install docker-ce docker-ce-cli containerd.io
error:
centos8 podman 冲突问题
# rpm -qa podman --查看podman版本
# dnf remove podman --卸载
# yum install docker-ce docker-ce-cli containerd.io
- 启动docker
$ sudo systemctl start docker
2. docker安装nginx
# docker search nginx --查看可用版本
# docker pull nginx:latest --拉取最新版本镜像
# docker images -- 查看本地镜像
# docker run --name nginx-s1 -p 8080:80 -d nginx --启动nginx容器
# --name 指定容器名称
# -p 端口映射,将本地 8080 端口映射到容器内部的 80 端口
# -d 后台运行容器,并返回容器ID
3. nginx容器.conf文件配置
# docker exec -it nginx-s1 bash --进入docker容器,后更/bin/bash
# -i 以交互模式运行容器,通常与 -t 同时使用;
# -t 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
# exit --退出
# docker ps -a --查看运行的容器
# docker stop nginx-s1 --停止nginx容器
# docker rm nginx-s1 --删除nginx容器
# 提前准备一个经过配置的nginx.conf文件 /data/nginx.conf
# docker run --name nginx-s2 -p 8080:8081 -v /data/nginx.conf:/etc/nginx/nginx.conf -d nginx
docker exec 是需要容器处于运行中且PID 1进程也处于运行中才能执行的操作。命令执行后会进入容器的默认工作目录,如果在Dockerfile中指定了工作目录,则会进入Dokcerfile指定的目录,如果命令中指定了工作目录-w则会进入该目录。
docker -v 挂载宿主机的一个目录。
dockers run -v /容器外部文件夹路径/:/容器内部文件夹路径/ -v /容器外部文件夹路径/:/容器内部文件夹路径 / … …
设置容器内文件权限:
:ro --只读,只能通过宿主机来操作文件,容器内部无法操作!
:rw --可读可写, 默认
例如:
#docker run -it -v /home/test:/home:ro centos /bin/bash
(冒号前/开始,一般为指定宿主机路径,所以为指定路径挂载)
docker inspect 容器id --查看容器挂载情况
Source为外部挂载的文件夹,Destination为容器内部被挂载的文件夹.
- 访问nginx
更多推荐
Docker安装-Nginx
发布评论