概念了解:
(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