# 安装docker
#下载docker-ce
[root@test-docker ~]# curl -O http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 安装指定版本的docker-ce
[root@test-docker yum.repos.d]# yum install -y docker-ce-19.03.2-3.el7 docker-ce-cli-19.03.2-3.el7 containerd.io
1 下载docker-compose
curl -L https://get.daocloud.io/docker/compose/releases/download/1.21.2/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose
2、将下载后的文件放到 /usr/local/bin 目录下,并添加执行权限
chmod +x /usr/local/bin/docker-compose
使用docker部署wordpress系统
# 1
[root@localhost~] # mkdir my_wordpress && cd my_wordpress
[root@localhost my_wordpress]# vi docker-compose.yml
version: '3.3'
services:
db:
image: mysql:5.7
volumes:
- db_data:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: somewordpress
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress
wordpress:
depends_on:
- db
image: wordpress:latest
ports:
- "8000:80"
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
WORDPRESS_DB_NAME: wordpress
volumes:
db_data: {}
[root@localhost my_wordpress] # docker-compose up -d
.基于centos7镜像编写dockerfile文件,构建http服务,Dockerfile要求删除镜像的yum源,使用当前docker宿主机系统的yum源文件,完成后安装http服务,此镜像要求暴露80端口,构建的镜像名称为httpv1.0。
# 2.1)
[root@localhost~]# mkdir /httpv1.0
[root@localhost httpv1.0]# cat dockerfile
FROM centos:centos7
RUN rm -rf /etc/yum.repo.d/*
ADD CentOS-Base.repo /etc/yum.repo.d/
RUN yum install -y httpd
EXPOSE 80
[root@localhost] docker build -t http:v1.0 .
基于centos7镜像编写dockerfile文件,构建http服务,Dockerfile要求册除镜像的yum源,使用当前系统的yum源文件,完成后安装http服务,上传index.html文件至镜像内部/var/www/htmI路径下 , index文件内蓉为“hello apache”,此镜像要求暴露80端口,且f改参数HOSTNAME为www.example.com,设置httpd服务为前台启动,构建的镣像名称为http;v2.0。启动孩镣像为容器,命名为htt1,将8080端口映射至容器内部80端口,访问8080瑞口网页
# 2.2)
[root@xmq-docker httpv2.0]# cat Dockerfile
FROM centos:centos7
RUN rm -rf /etc/yum.repos.d/*
COPY ./local.repo /etc/yum.repos.d
RUN yum install -y httpd
COPY ./index.html /var/www/html
EXPOSE 80
CMD ["-D", "FOREGROUND"]
ENTRYPOINT ["/usr/sbin/httpd"]
[root@xmq-docker httpv2.0]# cat index.html
hello apache
[root@xmq-docker httpv2.0]# docker build . -t http:2.0
[root@xmq-docker httpv2.0]# docker run -tid --name http-1 -p 8080:80 -h www.example.com http:2.0
e85a19c6b0633f84bb48eac83f06f57a2be315bb725c1060ff262b42e2ae1628
[root@xmq-docker httpv2.0]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e85a19c6b063 http:2.0 "/usr/sbin/httpd -D …" 5 seconds ago Up 4 seconds 0.0.0.0:8080->80/tcp http-1
请你在本地doeker宿主机上加勤registy的ta包为registy :latest晚像,并启动为私有仓库,将本地宿主机的5000端口映射到容器的5000端口,容器命名为regsty , 设置为自启动状态
# 3.1)
[root@xmq-docker ~]# docker pull registry
[root@xmq-docker ~]# docker run -d -p 5000:5000 --restart=always --name registry -v /opt/data/registry:/var/lib/registry registry
下载官方的centos:7境像,将该镜像上传到registry仓库
# 3.2)
[root@xmq-docker ~]# docker tag centos:centos7 127.0.0.1:5000/centos:centos7
[root@xmq-docker ~]# docker push 127.0.0.1:5000/centos
[root@xmq-docker ~]# curl http://127.0.0.1:5000/v2/_catalog
{"repositories":["centos"]}
在远程docker主机上下或registy中的xenle.7晚像,将该境像运行为一个容器,命名为cento-7,进入容数安装netoos工具,实现retstat命令的自由使用,并将该容器打包封装为新的镜像,命名为;centos:net,重新上传至registry。
# 3.3)
[root@test-docker docker]# cat daemon.json
{
"insecure-registries":["10.104.44.46:5000"]
}
[root@test-docker docker]# docker pull 10.104.44.46:5000/centos:centos7
.
[root@test-docker docker]# docker run --name centos-7 -itd 10.104.44.46:5000/centos:centos7 /bin/bash
bb7b6694792daf785e3ce97c95e4244baad1e07fef1b909609df973f6d48aaa7
[root@test-docker docker]# docker exec -it centos-7 /bin/bash
[root@bb7b6694792d /]# yum install net-tools -y
[root@test-docker docker]# docker commit bb7b6694792d centos:net
[root@test-docker docker]# docker push 10.104.44.46:5000/centos:net
[root@xmq-docker ~]# curl http://127.0.0.1:5000/v2/centos/tags/list
{"name":"centos","tags":["centos7","net"]}
、在本地docker宿主机上,下载registry中的xentos : net模像,并将其保存为tar包
# 4.4)
[root@xmq-docker docker]# cat daemon.json
{
"registry-mirrors":["https://c6a3mt5n.mirror.aliyuncs.com"],
"insecure-registries":["10.104.44.46:5000"]
}
[root@xmq-docker docker]# docker pull 10.104.44.46:5000/centos:net
[root@xmq-docker docker]# docker save -o centos:net.tar 10.104.44.46:5000/centos:net
在本地soeker信主机上,将registry中的centos:net运行为容器,命名为centos-net,并在该容器中,通过/etc/hosts文件修改本容器IP映射为centos-net,然后将该容器导出为一个ar包
(--add-host=centos-net:127.0.0.1 #添加主机映射)
[root@xmq-docker ~]# docker run --name centos-net -itd 10.104.44.46:5000/centos:net /bin/bash
4be77cff92f3f9525f58b285591ce55bd82dcc635c8098798c6c5b884971059b
[root@xmq-docker ~]# docker exec -it centos-net /bin/bash
[root@4be77cff92f3 /]# echo "127.0.0.1 centos-net" >> /etc/hosts
[root@xmq-docker ~]# docker commit 4be77cff92f3 centos-net
[root@xmq-docker ~]# docker save -o centos-net.tar centos-net:latest
浙公网安备 33010602011771号