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 < /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

Hello docker!!!


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

你可能感兴趣的:(docker)