docker安装及使用教程(以部署nginx为例)

一、docker下载地址

Index of linux/static/stable/x86_64/

我这里下载的是docker-18.09.2.tgz

二、安装docker

所有操作均需root权限

1、创建docker组

groupadd docker

2、解压源码包

tar -zxvf docker-18.09.2.tgz -C /home/collect
注释:-C /home/collect  指定docker安装路径

3、将解压出来的docker目录下的指令复制到 /usr/bin/ 目录下

cp docker/* /usr/bin/

4、修改/usr/bin目录下的docker文件的属组

chown root:docker /usr/bin/docker*
chown root:docker /usr/bin/containerd*
chown root:docker /usr/bin/runc
chown root:docker /usr/bin/ctr

5、将docker注册为service服务

新建该文件
vi /etc/systemd/system/docker.service

加入以下内容:
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target firewalld.service
Wants=network-online.target
  
[Service]
Type=notify
ExecStart=/usr/bin/dockerd 
ExecReload=/bin/kill -s HUP $MAINPID
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
TimeoutStartSec=0
Delegate=yes
KillMode=process
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s
  
[Install]
WantedBy=multi-user.target

6、添加执行权限并重新加载配置文件

chmod a+x /etc/systemd/system/docker.service
systemctl daemon-reload

7、docker镜像加速(可以不做,但是docker pull会很慢,由于docker官网在海外)

新建该文件
vi /etc/docker/daemon.json 

加入以下内容
{
"registry-mirrors": ["http://hub-mirror.c.163.com"]
}

8、启动docker

systemctl start docker

三、docker使用之配置nginx

在第二部分已经安装好docker了,这里已部署nginx为例说明docker常用方法。

1、docker拉取nginx镜像

docker pull nginx #默认拉取最新版本的nginx,也可以手动指定nginx版本,如:docker pull nginx:1.20.1

2、docker创建容器启动nginx

docker run -d --name nginx01 -p 1234:80 nginx
# 命令详解:
# docker run 启动一个镜像
# -d 表示后台允许
# --name nginx01  表示为当前容器起一个别名
# -p 1234:80 表示将本机的1234端口映射到nginx镜像的80端口
#  nginx 镜像 REPOSITORY标识;或者可以使用IMAGE ID,通过命令docker images 先查看出要启动的镜像的唯一标识,使用docker images命令,查询到镜像信息,然后找到镜像的REPOSITORY标识或IMAGE ID标识即可

***注意:***通过上述命令可以正常启动一个nginx容器没有问题,但是当我们需要修改nginx的配置文件时就会很麻烦了,需要进入到容器内部,修改配置,退出容器,然后再进行容器重启,过程较为繁琐。为了解决此问题,我们可以在容器启动的过程中添加一条命令,实现nginx 的配置文件和本地主机指定的配置文件形成关联映射,那么以后只要我们改动本地的配置文件后就会自动映射到nginx容器中,这样极大的简化了修改容器配置文件的流程。

3、将nginx关键目录映射到本机

1、创建本地文件存储目录
	mkdir -p /root/nginx/www /root/nginx/logs /root/nginx/conf
	www: nginx存储网站网页的目录
	logs: nginx日志目录
	conf: nginx配置文件目录
2、查看容器ID
	docker ps -a
3、将配置文件拷贝到本地
	docker cp 容器id:/etc/nginx/nginx.conf /root/nginx/conf/nginx.conf
4、停止nginx
	docker stop nginx
5、创建新nginx容器nginx-web,并将www,logs,conf目录映射到本地
	docker run -p 80:80 --name nginx-web -v /root/nginx/www:/usr/share/nginx/html -v /root/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /root/nginx/logs:/var/log/nginx -d nginx
6、启动
	docker start nginx-web

四、docker常用命令

一、查看容器
1、docker ps -aqf "name=程序名"
2、docker inspect --format="{{.Id}}" 程序名
3、docker ps -a
二、删除容器
 docker rm 容器名(容器ID)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
好的,以下是使用 Docker 部署 Nginx使用 Nginx 部署项目的步骤: 1. 首先,需要安装 Docker,可以参考官网的安装教程进行安装。 2. 创建一个用于存放 Nginx 配置文件和项目文件的目录,比如 /home/nginx。 3. 在该目录下创建一个名为 nginx.conf 的 Nginx 配置文件,可以参考以下示进行编写: ``` worker_processes 1; events { worker_connections 1024; } http { server { listen 80; server_name localhost; location / { root /usr/share/nginx/html; index index.html; } location /api/ { proxy_pass http://backend:8000/; } } } ``` 上述配置文件中,Nginx 监听本地 80 端口,将访问根目录的请求转发到 /usr/share/nginx/html 目录下的 index.html 文件,将以 /api/ 开头的请求转发到名为 backend 的 Docker 容器中的 8000 端口。 4. 在该目录下创建一个名为 Dockerfile 的文件,用于构建自定义的 Nginx 镜像,可以参考以下示进行编写: ``` FROM nginx COPY nginx.conf /etc/nginx/nginx.conf COPY dist/ /usr/share/nginx/html/ ``` 上述 Dockerfile 文件中,使用 nginx 作为基础镜像,将本地的 nginx.conf 文件复制到容器中的 /etc/nginx/nginx.conf 目录下,将本地的项目文件复制到容器中的 /usr/share/nginx/html/ 目录下。 5. 使用以下命令构建并运行 Nginx 容器: ``` docker build -t my-nginx . docker run --name my-nginx -p 80:80 --link backend my-nginx ``` 上述命令中,首先使用 docker build 命令构建名为 my-nginx 的自定义 Nginx 镜像,然后使用 docker run 命令启动该镜像对应的容器,将本地的 80 端口映射到容器的 80 端口,并连接名为 backend 的后端容器。 6. 至此,使用 Docker 部署 Nginx使用 Nginx 部署项目的过程已完成。可以通过浏览器访问 http://localhost 来查看部署的项目。如果该项目中有需要通过 /api/ 访问的后端服务,可以在后端容器中启动该服务,并将其命名为 backend,以便 Nginx 容器能够连接到该服务。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值