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 终端上操作
---下载镜像

--镜像操作

--上传操作


posted on 2018-10-25 17:38  luoxf  阅读(240)  评论(0)    收藏  举报

导航