1.3 老段讲docker
第一章 DOCKER安装和工具安装
docker容器来说--不健壮
一、母机环境检查
1.1 检查和配置hosts文件,将ip地址、默认网站名、主机机进行关联。
vi /etc/hosts 192.168.26.151 docker1.example.com docker1 192.168.26.152 docker2.example.com docker2
---将docker1的hosts文件拷到docker2相应目录上。
scp /etc/hosts docker2:/etc/
1.2 配置SElinux,是Linux安全加强工具
--关闭用setenforce 0或者修改文件vim /etc/sysconfig/selinux 把SELINUX=enforcing 改为 SELINUX=disabled.
--linux防火墙用chkconfig iptables on 开机启动 service iptables start 打开防火墙规则。
vim /etc/sysconfig/selinux firewall-cmd --list-all firewall-cmd --set-default-trusted firewall-cmd --set-default-zone=trusted
1.3 检查是否安装相关工具进行安装相关工具
---检查命令
yum list bash*
---进行安装docker和mariadb工具
yum install docker -y yum install mariadb -y yum install vim lrzsz *open*vm*tool* -y yum install bash* -y
---yum卸载docker命令
yum clean headers 清除header
yum clean packages 清除下载的rpm包
yum clean all 全部清除
---启动docker命令
service docker start
二、母机镜像检查、下载
2.1 母机根目录下,核查母机有没有镜像
--命令
docker images
--没有,下载镜像
2.2 下载相关镜像测试
--下载mysql镜像原地址安装
docker pull mysql
--加速器下载mysql镜像
[root@itpux nginx]# docker pull hub.c.163.com/library/mysql Using default tag: latest latest: Pulling from library/mysql 42cb69312da9: Pull complete e2cf5467c4b5: Pull complete 871ec0232f66: Pull complete 3c0ae7ec690d: Pull complete d39b43089b70: Pull complete aa0e7cb4b67c: Pull complete 738db9902d06: Pull complete ae333863ac05: Pull complete 6d014992204a: Pull complete 09aeca0c9a82: Pull complete 0162083b2de0: Pull complete Digest: sha256:b2bce1a792237ac5df78877d583f34b09ab023a77130921a6bcce67ce2d24ff0 Status: Downloaded newer image for hub.c.163.com/library/mysql:latest
---下载centos镜像
--方式1:docker pull centos
--方式2:docker run -i -t hub.c.163.com/library/centos
[root@itpux nginx]# docker pull centos Using default tag: latest latest: Pulling from library/centos aeb7866da422: Pull complete Digest: sha256:67dad89757a55bfdfabec8abd0e22f8c7c12a1856514726470228063ed86593b Status: Downloaded newer image for centos:latest [root@itpux nginx]#
---查看本机已有镜像,可以看到刚才下载的Mysql和centos镜像
[root@itpux nginx]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
mynginx latest 904dd77518e4 54 minutes ago 109.1 MB
nginx latest dbfc48660aeb 9 days ago 109.1 MB
centos latest 75835a67d134 2 weeks ago 200.4 MB
hub.c.163.com/library/mysql latest 9e64176cd8a2 18 months ago 407.1 MB
[root@itpux nginx]#
3.母机安装加速器
--查看加速器安装情况
[root@itpux nginx]# ls /etc/docker/
daemon.json key.json
cat /etc/docker/
三、docker加速器安装和配置
cat /etc/docker/daemon.json vi /etc/docker/daemon.json {"registry-mirrors": ["https://frz7i079.mirror.aliyuncs.com"]}
四、母机删除镜像和删除容器
4.1 --删除镜像
docker rmi docker 镜像名:TAG docker rmi docker docker1.example.com:5000/peixun/mysql1.1:tag docker rmi docker1.example.com/peixun/mysql:latest docker rmi docker1.example.com/peixun/mysql:v1 docker rmi docker -f 镜像名:TAG
4.2 --删除容器
语法:docker rm 容器名称,可以容器名前面字母区别其他,即可。
docker rm db docker rm d //必须只有1个镜像以d开头
五、镜像命名、改名等命令
一)镜像命名方式如下
--IP/主机名:5000/分类/镜像名:标签
假如:主机名是docker1.example.com ip是192.168.26.151
命名:docker1.example.com:5000/peixun/mysql1.1
---镜像名称改名,如下图hub.c.163.com/library/mysql与mysql 镜像的IMAGE ID一致。
[root@itpux nginx]# docker tag hub.c.163.com/library/mysql mysql [root@itpux nginx]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE mynginx latest 904dd77518e4 About an hour ago 109.1 MB nginx latest dbfc48660aeb 9 days ago 109.1 MB centos latest 75835a67d134 2 weeks ago 200.4 MB hub.c.163.com/library/mysql latest 9e64176cd8a2 18 months ago 407.1 MB mysql latest 9e64176cd8a2 18 months ago 407.1 MB [root@itpux nginx]#
六、查看镜像情况
# 查看指定镜像
docker images
docker history hub.c.163.com/library/mysql
# 查看镜像是如何构建的
命令:sudo docker history docker history hub.c.163.com/library/mysql
[root@itpux nginx]# sudo docker images docker history hub.c.163.com/library/mysql "docker images" requires at most 1 argument(s). See 'docker images --help'. Usage: docker images [OPTIONS] [REPOSITORY[:TAG]] List images [root@itpux nginx]# [root@itpux nginx]# sudo docker history docker history hub.c.163.com/library/mysql "docker history" requires exactly 1 argument(s). See 'docker history --help'. Usage: docker history [OPTIONS] IMAGE Show the history of an image [root@itpux nginx]#
命令:docker history hub.c.163.com/library/mysql
[root@itpux nginx]# docker history hub.c.163.com/library/mysql IMAGE CREATED CREATED BY SIZE COMMENT 9e64176cd8a2 18 months ago /bin/sh -c #(nop) CMD ["mysqld"] 0 B <missing> 18 months ago /bin/sh -c #(nop) EXPOSE 3306/tcp 0 B <missing> 18 months ago /bin/sh -c #(nop) ENTRYPOINT ["docker-entryp 0 B <missing> 18 months ago /bin/sh -c ln -s usr/local/bin/docker-entrypo 0 B <missing> 18 months ago /bin/sh -c #(nop) COPY file:5453fdbdb142b28e9 6.032 kB <missing> 18 months ago /bin/sh -c #(nop) VOLUME [/var/lib/mysql] 0 B <missing> 18 months ago /bin/sh -c sed -Ei 's/^(bind-address|log)/#&/ 1.234 kB <missing> 18 months ago /bin/sh -c { echo mysql-community-server my 240.1 MB <missing> 18 months ago /bin/sh -c echo "deb http://repo.mysql.com/ap 55 B <missing> 18 months ago /bin/sh -c #(nop) ENV MYSQL_VERSION=5.7.18-1 0 B <missing> 18 months ago /bin/sh -c #(nop) ENV MYSQL_MAJOR=5.7 0 B <missing> 18 months ago /bin/sh -c set -ex; key='A4A9406876FCBD3C456 20.78 kB <missing> 18 months ago /bin/sh -c apt-get update && apt-get install 38.67 MB <missing> 18 months ago /bin/sh -c mkdir /docker-entrypoint-initdb.d 0 B <missing> 18 months ago /bin/sh -c set -x && apt-get update && apt-g 4.581 MB <missing> 18 months ago /bin/sh -c #(nop) ENV GOSU_VERSION=1.7 0 B <missing> 18 months ago /bin/sh -c groupadd -r mysql && useradd -r -g 330.4 kB <missing> 18 months ago /bin/sh -c #(nop) CMD ["/bin/bash"] 0 B <missing> 18 months ago /bin/sh -c #(nop) ADD file:712c48086043553b85 123.4 MB [root@itpux nginx]#
七、docker网络管理
---查看母机上docker网络
[root@itpux nginx]# docker network list NETWORK ID NAME DRIVER SCOPE adb9a23b5c0d bridge bridge local 75b16eec7cf4 host host local 688698613ce7 none null local [root@itpux nginx]#
man -k docker
man docker-network-create
docker network create -d bridge --subnet=10.0.0.0/24 mynet
docker run --net=mynet --rm -it centos /bin/bash
docker run -dit -p 物理机端口:容器端口 镜像
八、查看容器在母机个运行情况
pgrep cat
第二章 容器管理
1.创建并运行一个容器
--- 其中-i 代表显示窗口,-t直接进入容器
[root@itpux nginx]# docker run -i -t hub.c.163.com/library/centos Unable to find image 'hub.c.163.com/library/centos:latest' locally latest: Pulling from library/centos 2409c3878ba1: Pull complete Digest: sha256:ab7e9c357fa8e5c822dd22615d3f704090780df1e089ac4ff8c6098f26a71fef Status: Downloaded newer image for hub.c.163.com/library/centos:latest [root@1ab7aac1183b /]#
--创建容器并命名
[root@itpux nginx]# docker run -i -t --name=db hub.c.163.com/library/centos [root@b10f7b2d0ad5 /]# exit exit [root@itpux nginx]# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES b10f7b2d0ad5 hub.c.163.com/library/centos "/bin/bash" 12 seconds ago Exited (0) 8 seconds ago db 9388547b870e 904dd77518e4 "nginx -g 'daemon off" About an hour ago Up About an hour 0.0.0.0:8080->80/tcp mynginx [root@itpux nginx]#
2.查看运行的窗口
--查看命令
docker ps -a 查看所有容器
docker ps 查看正在运行的容器
--查看容器属性
docker
3、停止容器
--母机中删除容器
docker rm db
4、退出
--服务中删除,并退出容器
[root@itpux nginx]# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 1ab7aac1183b hub.c.163.com/library/centos "/bin/bash" 18 minutes ago Exited (0) 16 minutes ago reverent_sinoussi 9388547b870e 904dd77518e4 "nginx -g 'daemon off" About an hour ago Up 59 minutes 0.0.0.0:8080->80/tcp mynginx [root@itpux nginx]# docker rm 1ab7aac1183b8331dd2117403f290436a02a37b4e0a252268fe7186ff887ab55 1ab7aac1183b8331dd2117403f290436a02a37b4e0a252268fe7186ff887ab55 [root@itpux nginx]# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 9388547b870e 904dd77518e4 "nginx -g 'daemon off" About an hour ago Up About an hour 0.0.0.0:8080->80/tcp mynginx [root@itpux nginx]#
--容器内退出
exit
5、容器db重启
docker start db 开启
docker stop db 停止容器
docker attach db
6.登陆前期容器,执行命令
[root@itpux nginx]# docker exec -it nginxserver /bin/bash
[root@34abed4c4e6f /]# ll
7. 启动前期已经关闭的容器(需测试)
docker load -i mysql.tar
13.查看容器IP地址(db是容器名)
--登陆容器
ip a
docker exec db ip a
--登陆主母机核查IP地址,会增加docker0的网卡
[root@itpux devicemapper]# ifconfig docker0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 172.17.0.1 netmask 255.255.0.0 broadcast 0.0.0.0 inet6 fe80::42:38ff:fe52:a prefixlen 64 scopeid 0x20<link> ether 02:42:38:52:00:0a txqueuelen 0 (Ethernet) RX packets 13936 bytes 620890 (606.3 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 15656 bytes 64002017 (61.0 MiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
第三章 MYSQL安装和nginx容器安装
1、安装MYSQL
1.1 安装
需测试
1.2、登陆(安装容器的IP地址172.17.0.2)
mysql -uroot -predhat -h172.17.0.2
1.3、查看容器IP地址
[root@itpux nginx]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 634bbc0a8968 boonya/tomcat-web:latest "/bin/sh -c '/usr/loc" 22 minutes ago Up 7 seconds 0.0.0.0:8088->8080/tcp reverent_brown 576d0f72377c centos "/bin/bash" About an hour ago Up 59 minutes nginxdocker02 34abed4c4e6f nginxdocker/nginxdocker:v1 "nginx" 4 hours ago Up About an hour 0.0.0.0:8080->80/tcp nginxserver [root@itpux nginx]# docker inspect reverent_brown |grep ipaddress -i "SecondaryIPAddresses": null, "IPAddress": "172.17.0.4", "IPAddress": "172.17.0.4", [root@itpux nginx]#
1.4.登陆数据库
mysql -uroot -predhat -h172.17.0.2
2、安装nginx容器,是一个高性能的HTTP和反向代理服务。
2.1-- 默认目录安装
docker pull hub.c.163.com/library/nginx:latest
2.2 指定目录和保存
docker run -dit --name=web -p 80:80 -v /xx:/usr/share/nginx/html hub.c.163.com/library/nginx
3.容器安装默认地址

4. 容器默认地址目录说明
第一个是本地私有库的一些配置
第二个第三个是镜像和镜像层的数据库
最后一个是私有仓库的一个json文件

第四章 容器文件管理
1、容器创建的配置和文件,保存在物理机内容器层
把容器的目录与母机的目录相关联,可以让任意个容器或任意数容器关联同一目录。
容器删除后,其他容器可以继续访问母机的目录;
2、镜像
--#放在电脑的什么位置的?
docker save hub.c.163.com/library/mysql > mysql.tar //未测试,待测试
第五章 wordpress+mysql搭建自己的个人博客
要求:
使用wordpress+mysql搭建自己的个人博客
同时要求数据要持久性自定义存储。
4.1 下载镜像且安装
--创建nginx
docker run -dit --name=web -p 80:80 -v /xx:/usr/share/nginx/html hub.c.163.com/library/nginx
--创建mysql
docker run -dit --restart=always --name=db -e MYSQL_ROOT_PASSWORD=redhat -e MYSQL_DATABASE=db -v /db:/var/lib/mysql hub.c.163.com/library/mysql
--下载创建wordpress
docker run -dit --restart=always --name=web -p 80:80 -v /web:/var/www/html -e WORDPRESS_DB_HOST=172.17.0.2 -e WORDPRESS_DB_USER=root -e WORDPRESS_DB_PASSWORD=redhat -e WORDPRESS_DB_NAME=db hub.c.163.com/library/wordpress
4.2安装镜像
第六章 容器案例
6.1 配置镜像配置文件
创建有ifconfig的镜像centos。
cat dockerfile
vi dockerfile
FROM hub.c.163.com/l
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-*
RUN yum install net-tools -y
docker build -t centos .
6.2
第七章 配置本地仓库
要求:一台服务器,一台终端。
7.1 服务器上安装仓库镜像
docker run -d --name registry -p 5000:5000 --restart=always -v /myreg:/var/lib/registry registry
7.2 终端上操作
---下载镜像
--镜像操作
--上传操作
浙公网安备 33010602011771号