docker使用以及自定义镜像

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

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值