乐趣区

关于docker:Docker-轻量级的虚拟机开发运维一体化核心技术

概念了解:

(1)VMware: 虚构残缺的计算机硬件;虚构底层操作系统资源.
(2)Docker: 充分利用零碎硬件和宿主机零碎的底层资源;只虚构很少的货色.
(3)镜像:虚拟机的动态文件;虚拟机镜像文件能够任意复制、散发.
(4)容器:从镜像运行启动的虚拟机.

docker 手册

官网:https://vuepress.mirror.docke…

centos7 装置 docker

下载离线安装包:
https://download.csdn.net/dow…

安装包下完要放到 /root 目录下
切换到 docker-install 目录进行装置
装置指令:cd -ivh *.rpm

yum 在线装置 docker

官网装置手册:https://docs.docker.com/insta…
卸载旧版的操作:

sudo yum remove docker-ce \

            docker-ce-client \
            docker-client-latest \
            docker-common \
            docker-latest \
            docker-latest-logrotate \
            docker-logrotate \
            docker-engine

装置一组工具:
sudo yum install -y yum-utils \
device-mapper-persistent-data \
lvm2

设置 yum 仓库地址:
sudo yum-config-manager \

--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo

sudo yum-config-manager \

 --add-repo \
 http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

更新 yum 缓存:
sudo yum makecache fast

装置最新版 docker
sudo yum install -y docker-ce docker-ce-cli containerd.io

启动 docker 零碎服务
启动 docker:
sudo systemctl start docker
设置 docker 开机启动:
sudo systemctl enable docker

镜像减速

因为国内网络问题,须要配置加速器来减速。
批改配置文件: /etc/docker/daemon.json
上面的指令间接生成文件 daemon.json
cat <<EOF > /etc/docker/daemon.json
{
“registry-mirrors”: [

"https://dockerhub.azk8s.cn",
"https://hub-mirror.c.163.com"

]
}
EOF

查看镜像:docker images
从镜像运行启动容器:(1)-i 能与启动的容器进行交互;

(2)-t 启动终端.
                docker run -it tomcat

(3)-d 后盾运行:docker run -d tomcat
(4)删除镜像(如果有容器存在):docker rmi hello-world(hello-worle 是容器名称)
(5)-f 参数强制删除: docker rmi -f hello-world

离线装置的导入指令:docker load -i tomcat…image.gz

容器命令

(1)运行启动容器:docker run -d –name tomcat1 tomcat(tomcat1 容器名称)
(2)容器列表,列出运行状态的容器:docker ps

           列出运行所有的容器,包含退出的容器:docker ps -a

(3)查看镜像设置的默认运行命令:docker history tomcat
(4)启动镜像时,执行指定的命令,而不执行默认命令:

docker run -it tomcat ls
docker run -it tomcat pwd
docker run -it tomcat ps
docker run -it tomcat top

(5)启动和暂停容器:
docker stop tomcat1
docker start tomcat1
docker restart tomcat1
清理所有进行的容器:docker container prune

(6)进入容器,在容器内运行指定的命令:
docker exec -it tomcat tomcat1 touch f1.txt
docker exec -it tomcat1 ls
……

(7)–rm 容器进行时,能够被主动删除
docker run \
-d \
–name tomcat2 \
–rm \
tomcat

(8)进行容器时,容器会被主动删除
docker stop tomcat2(容器名称)
(9)–restart=always 总是主动重新启动容器,服务器重启,或 docker 零碎服务重启,容器会随零碎一起重新启动
docker run \
-d \
–name tomcat2 \
–restart=alwatys \
tomcat

目录挂载

docker run \
-d \
–name t1 \
-v /usr/app:/opt/app \
tomcat

查看容器形容:
docker inspect t1

进入容器,在容器中创立文件
docker exec -it t1 bash

cd /opt/app
echo 5555555 > f1.txt

查看文件:
ls
cat f1.txt

删除 t1 容器,/usr/app/f1.txt 不会删除
docker rm -f t1

创立数据卷

docker volume create my-vol(名称)

查看数据卷:
/var/lib/docker/volumes/my-vol/_data
docker volume ls
docker inspect my-vol

启动容器,把 my-vol 挂载到容器的 /opt/app
docker run \
-d \
–name t2 \
-v my-vol:/opt/app \
tomcat

进入容器生成文件
docker exec -it t2 touch /opt/app/f2.txt

查看宿主机目录下的文件
cd /var/lib/docker/volumes/my-vol/_data
ls

筹备宿主机文件 /opt/web/index.html
mkdir /opt/web

cat << EOF >/opt/web/index.html
<h1> Hello docker!!!<h1>
EOF

(1)-v 目录挂载
(2)-p 端口映射,- p 宿主机端口:容器端口
docker run \
-d \
–name t1 \
-v /opt/web:/usr/local/tomcat/webapps/ROOT \
-p 8080:8080 \
tomcat

测试拜访地址:
http:192.168.64.150:8080

虚拟机网络互联

(1)创立虚构网络
docker network create my-net

(2)查看网络
docker network ls
docker inspect my-net

(3)查看在宿主机上创立的虚构网卡
ifconfig

(4)启动两个 tomcat 容器,连贯到 my-net 网络
docker run -d –name app1 –net my-net tomcat
docker run -d –name app2 –net my-net tomcat

(5)查看容器取得 ip
docker inspect app1
docker inspect app2

(6)从宿主机 ping .2 和 .3(. 示意当前目录下)
ping 172.18.0.2
ping 172.18.0.3

(7)从 app1 ping 从宿主机和 app2
docker exer -it app1 ping 172.18.0.1
docker exec -it app1 ping 172.18.0.3

(8)在容器中相互连贯,能够用容器名,不须要写具体 ip
docker exec -it app1 ping app2

Dockerfile 构建镜像

了解:相似于空电脑装机,一步一步装置配置本人的利用运行环境

构建 tomcat 镜像执行流程:
(1). 从空的操作系统开始
(2). 复制 jdk 和 tomcat
(3). 配置 jdk 环境变量
(4). 设置镜像的默认启动命令

把 /opt/web 文件夹挂载 /usr/tomcat/webapps/ROOT
docker run \
-d \
–name web \
–restart=always \
-p 80:8080 \
-v /opt/web:/usr/tomcat/webapps/ROOT \
tomcat:7

拜访测试的地址:http://192.168.64.150

退出移动版