0、引言
docker经验整理,技术一定要实践,总结,’难者不会,会者不难‘。
话不多说,搞起 :
1,安装及卸载
2,拉取镜像,创建容器
3,容器搭建 centos7 + apache + php7.4
4,服务器使用 nginx 代理到各个容器
1、安装及卸载
1.1 安装
使用 Docker 仓库进行安装
设置仓库
安装所需的软件包。yum-utils 提供了 yum-config-manager ,并且 device mapper 存储驱动程序需要 device-mapper-persistent-data 和 lvm2。
1 |
yum install -y yum-utils \ |
使用以下命令来设置稳定的仓库
1 |
yum-config-manager \ |
安装 Docker Engine-Community
安装最新版本的 Docker Engine-Community 和 containerd
1 |
yum install -y docker-ce docker-ce-cli containerd.io |
启动
1 |
systemctl enable docker //开机启动 |
1.2 卸载
卸载主要使用三个命令
- 查询安装过的包
1 |
yum list installed | grep docker |
- 删除安装的软件包
1 |
yum -y remove docker-ce.x86_64 docker-ce-cli.x86_64 |
- 删除镜像/容器等
1 |
rm -rf /var/lib/docker |
我的执行结果 :
2、拉取镜像,创建容器
2.1 拉取镜像
- 搜索镜像:docker search 镜像名称
1 |
docker search centos |
- 拉取镜像:docker pull 镜像名称:标签
1 |
//不加tag,会拉取最新 tag:latest docker pull centos |
- 删除镜像:docker rmi 镜像名称:标签
1 |
docker rmi centos:latest |
- 怎么拉取指定版本?
如果需要指定版本可以前往 https://hub.docker.com 搜索对应镜像的所有tag,选择下载
比如:搜索 centos 点击想要的镜像来源, 点击Tags,列举出所有的版本,复制下载命令
可能出现问题
a. Error response from daemon: Get https://registry-1.docker.io/v2/: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
b. 镜像拉取慢(docker pull)
解决方法
修改镜像源
1 |
//1.编辑文件 /etc/docker/daemon.json 有则修改,没有则创建 |
2.2 创建容器
- 查看镜像
1 |
docker images |
- 创建容器
1 |
docker run -d –name phpdev1 \ |
这里的创建命令主要针对 centos ,其他容器会有所调整
- 查看容器
1 |
docker ps //运行中的容器 |
- 容器操作相关命令
1 |
docker start 容器id 容器id … //启动一个或多个已经被停止的容器 |
我的执行结果 :
3、容器搭建 centos7 + apache + php7.4
centos7 我们已经拉取下来并且创建好容器了,下面就是进入容器,搭建环境
- 进入容器
1 |
docker exec -it 容器id /bin/bash |
- yum 安装相应扩
1 |
//1. apache systemctl enable httpd //开机启动 //2. php7.4 yum -y install yum-utils yum -y install php php-cli php-fpm php-mysqlnd php-zip php-devel php-gd php-mcrypt php-mbstring php-curl php-xml php-pear php-bcmath php-json |
4、服务器使用 nginx 代理到各个容器
- 创建多个容器
因为这个容器的环境已经配置好了,可以将这个容器commit为镜像保存,做为一个基础的环境镜像。可以通过这个镜像直接生成新的容器。
添加新的容器,只需要修改httpd.conf 的 Listen ,容器绑定的端口即可。
1 |
docker commit 容器id 镜像名称:版本 //通过容器 创造 镜像 |
- 修改服务器上nginx配置文件,添加server,大概如下
1 |
vim /etc/nginx/nginx.conf //添加新的 server |
5、总结
本次主要记录总结了下,自己搭建docker环境,遇到的问题,实际业务中的架构会比这更复杂,会有很多变化,负载,K8s等,但是核心基础不会改变。
文章中有些详细的命令,和参数没做讲解,因为都有对应的官方文档,官方文档很重要,一定要仔细阅读。
原文链接:https://www.codenong.com/cs106245633/