• 一、docker下载地址
  • 二、安装docker
  • 1、创建docker组
  • 2、解压源码包
  • 3、将解压出来的docker目录下的指令复制到 /usr/bin/ 目录下
  • 4、修改/usr/bin目录下的docker文件的属组
  • 5、将docker注册为service服务
  • 6、添加执行权限并重新加载配置文件
  • 7、docker镜像加速(可以不做,但是docker pull会很慢,由于docker官网在海外)
  • 8、启动docker
  • 三、docker使用之配置nginx
  • 1、docker拉取nginx镜像
  • 2、docker创建容器启动nginx
  • 3、将nginx关键目录映射到本机
  • 四、docker常用命令

一、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)