docker使用
1. docker安装mysql镜像并使用
# 首先去镜像仓库找到对应版本的mysql镜像地址
http://hub.daocloud.io
# 就会进入到如下页面,输入我们想要的镜像名
# 点击版本就会有我们mysql的所有版本信息
# 点击拉取,就可以有具体的仓库镜像地址
# 然后使用以下命令进行拉取对应版本mysql
docker pull daocloud.io/library/mysql:5.7.6
# 下载完毕,使用以下命令来查看是否下载成功
docker images
# 出现以下信息说明下载成功
[root@mysql1 soft]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
daocloud.io/library/mysql 5.7.6 2a2a35106ec5 5 years ago 361MB
# 运行mysql容器
# 1. 先下载mysql镜像再运行,注意这个-e放到最后边可能启动有问题
docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root --name mysql 2a
# 2. 直接运行,在运行过程中如果本地没有mysql镜像会先去仓库拉取运行
docker run -d -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=root daocloud.io/library/mysql:5.7.4
# 使用docker以下命令查看mysql是否启动,此时就可以通过navicat进行连接
[root@mysql1 soft]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
eb9fd349a40a 2a "/entrypoint.sh mysq…" 2 minutes ago Up 2 minutes 0.0.0.0:3307->3306/tcp mysql
2. docker安装tomcat镜像并使用
# 使用docker拉取仓库对应版本tomcat
docker pull daocloud.io/library/tomcat:8.5.15-jre8
# 启动tomcat镜像
# 常用操作例如以下
docker run -d -p 8080:8080 --name tomcat tomcat:8.5
# 或者
docker run -d -p 8080:8080 --name tomcat b8df
3. 将文件拷贝到容器地址中
# 1. 进入到容器内部
docker exec -it 容器id bash
# 例如 docker exec -it c4 bash
LICENSE NOTICE RELEASE-NOTES RUNNING.txt bin conf include lib logs native-jni-lib temp webapps work
# 相当于在容器内部进行操作
# 拷贝linux文件到容器地址
# docker cp 文件名称 容器id:容器内部路径
# 举个例子
docker cp /usr/local/soft/dockerTest.war fe:/usr/local/tomcat/webapps
4. 数据卷
为了部署dockerTest.war的工程,需要使用到cp命令将宿主机内的dockerTest.war文件复制到容器内部。
数据卷:将宿主机的一个目录映射到容器的一个目录中。
可以在宿主机中操作目录中的内容,那么容器内部映射的文件,也会跟着一起改变。这样的好处就可以不用每次拷贝,直接修改即可
# 1. 创建数据卷
docker volume create 数据卷名称
# 创建数据卷之后,默认会存放在一个目录下 /var/lib/docker/volumes/数据卷名称/_data
# 2. 查看数据卷的详细信息
docker volume inspect 数据卷名称
[root@mysql1 _data]# docker volume inspect tomcat
[
{
"CreatedAt": "2020-12-14T14:07:47+08:00",
"Driver": "local",
"Labels": {},
"Mountpoint": "/var/lib/docker/volumes/tomcat/_data",
"Name": "tomcat",
"Options": {},
"Scope": "local"
}
]
# 3. 查看全部数据卷
docker volume ls
[root@mysql1 _data]# docker volume ls
DRIVER VOLUME NAME
local 79a22874552a517a60f41d14c17ea483979eed002b074a27216f9f16ff8673f5
local a7d0e6c93e754563553c1ceec3af293eb5c416a24c409b92147f1c77bcc154d8
local e189613465fcc3fe144649d98614ca9a80fdd8bc62d56f1fdb109c8481b8193b
local tomcat
# 4. 删除数据卷
docker volume rm 数据卷名称
[root@mysql1 _data]# docker volume rm tomcat
tomcat
[root@mysql1 _data]# docker volume ls
DRIVER VOLUME NAME
local 79a22874552a517a60f41d14c17ea483979eed002b074a27216f9f16ff8673f5
local a7d0e6c93e754563553c1ceec3af293eb5c416a24c409b92147f1c77bcc154d8
local e189613465fcc3fe144649d98614ca9a80fdd8bc62d56f1fdb109c8481b8193b
# 5. 应用数据卷
# 当你映射数据卷时,如果数据卷不存在,Docker会自动帮你创建,会将容器内部自带的文件,存储在默认的存放路径中
docker run -v 数据卷名称:容器内部的路径 镜像id
# 启动加我们的volume数据卷
docker run -d -p 8080:8080 --name tomcat -v tomcat:/usr/local/tomcat/webapps b8
[root@mysql1 _data]# cd /var/lib/docker/volumes/tomcat/_data/
[root@mysql1 _data]# ls
docs examples host-manager manager ROOT
# 直接指定一个路径作为数据卷的存放位置,这个路径下是空的。
docker run -v 路径:容器内部的路径 镜像id
# 例如以下方式
docker run -d -p 8080:8080 --name tomcat -v /usr/local/soft/tomcat:/usr/local/tomcat/webapps b8
5. docker自定义镜像
中央仓库上的镜像,也是Docker的用户自己上传过去的。有些时候需要根据我们的使用场景来自定义些镜
# 1. 创建一个Dockerfile文件,并且指定自定义镜像信息
# Dockerfile文件中常用的内容
from:指定当前自定义镜像依赖的环境
copy:将相对路径下的内容复制到自定义镜像中
workdir:声明镜像的默认工作目录
cmd:需要执行的命令(在workdir下执行的,cmd可以写多的,只以最后一个为准)
# 举个例子,自定义一个Tomcat镜像,并且将ssm.war部署到Tomcat中
from daocloud.io/library/tomcat:8.5.15-jre8
copy ssm.war /usr/local/tomcat/webapps
# 具体示例
FROM daocloud.io/library/java:openjdk-8-jre-alpine
COPY dockerTest.jar /usr/local/soft/dockerTest.jar
CMD ["sh", "-c", "java -jar /usr/local/soft/dockerTest.jar"]
# 2. 将准备好的Dockerfile和相应的文件拖拽到Linux操作系统中,通过Docker的命令制作镜像
docker build -f Dockerfile -t 镜像名称:[tag] .
# 示例如下 后边的.必须是加的
docker build -f ./Dockerfile -t dockertest:1.0 .
本篇简单的docker简单应用已完结 后续还有更多的技术学习分享,希望找到致同道和的it大神或者是励志通往大神的路的it打工人,一起鼓励学习,鼓励前进,以后我也会在抖音开直播学习,一起加油!!!
抖音号20200321kk