脚本宝典收集整理的这篇文章主要介绍了简单使用Docker,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
注意F1a; CentOS 7 满足最低内核的要求,所以我们在CentOS 7安装Docker。
yum remove docker
docker-client
docker-client-latest
docker-common
docker-latest
docker-latest-LOGrotate
docker-logrotate
docker-selinux
docker-engine-selinux
docker-engine
docker-ce
yum install -y yum-utils
device-mapPEr-persistent-data
LVM2 --skip-broken
更新本地镜像源
# 设置docker镜像源
yum-config-manager
--add-repo
https://mirrors.aliyun.COM/docker-ce/linux/centos/docker-ce.repo
sed -i 's/download.docker.com/mirrors.aliyun.com/docker-ce/g' /etc/yum.repos.d/docker-ce.repo
yum makecache fast
最后,开始安装
yum install -y docker-ce
通过命令启动docker
Systemctl start docker # 启动docker服务
systemctl stop docker # 停止docker服务
systemctl restart docker # 重启docker服务
拉取镜像:docker pull xxx
(参考:DockerHub)
查看拉取到的镜像:docker images
使用docker save导出镜像到磁盘 docker save -o [保存的目标文件名称] [镜像名称]
例子:docker save -o nginx.tar nginx:latest
删除本地的xxx镜像:docker rmi xxx:xxx
例子:docker rmi nginx:latest
加载本地文件:docker load -i xxx.tar
例子:docker load -i nginx.tar 小练习
docker run --name containerName -p 80:80 -d xxx:xxx(比如nginx:latest)
命令解读:
查看正在运行中的容器:docker ps
查看所有容器,包括暂停的:docker ps -a
需求:进入Nginx容器,修改HTML文件内容,添加“传智教育欢迎您”
提示:进入容器要用到docker exec命令。
步骤:
1)进入容器。进入我们刚刚创建的nginx容器的命令为:
docker exec -IT mn bash
命令解读:
docker exec :进入容器内部,执行一个命令
-it : 给当前进入的容器创建一个标准输入、输出终端,允许我们与容器交互
mn :要进入的容器的名称
bash:进入容器后执行的命令,bash是一个linux终端交互命令(容器内没有vi命令)
cd /usr/share/nginx/html
sed -i -e 's#Welcome to nginx#随风欢迎你#g' -e 's#<head>#<head><meta charset="utf-8">#g' index.html
Ctrl+P+Q:退出容器
查看容器日志的命令:
数据卷的作用:
什么是数据卷
数据集操作命令 数据卷操作的基本语法如下:
docker volume [COMMAND]
docker volume命令是数据卷操作,根据命令后跟随的command来确定下一步的操作:
挂载数据卷 我们在创建容器时,可以通过 -v 参数来挂载一个数据卷到某个容器内目录
--name mn
-v html:/root/html
-p 8080:80
nginx
移除自己停用的容器:docker rm -f id(可以通过docker ps -a 进行查看)
需求:创建一个nginx容器,修改容器内的html目录内的index.html内容
分析:上个案例中,我们进入nginx容器内部,已经知道nginx的html目录所在位置/usr/share/nginx/html ,我们需要把这个目录挂载到html这个数据卷上,方便操作其中的内容。
提示:运行容器时使用 -v 参数挂载数据卷
步骤:
① 创建容器并挂载数据卷到容器内的HTML目录
docker run --name mn -v html:/usr/share/nginx/html -p 80:80 -d nginx
② 进入html数据卷所在位置,并修改HTML内容
# 查看html数据卷的位置
docker volume inspect html
# 进入该目录
cd /VAR/lib/docker/volumes/html/_data
# 修改文件
vi index.html
docker run
--name mySQL
-e MYSQL_ROOT_PASSWORD=922815
-p 3306:3306
-v /tmp/mysql/conf/hmy.cnf:/etc/mysql/conf.d/hmy.cnf
-v /tmp/mysql/data:/var/lib/mysql
-d
mysql:5.7.25
要是运行不起来可以尝试删除之前数据卷conf文件夹里面的东西
构建自定义的镜像时,并不需要一个个文件去拷贝,打包。
我们只需要告诉Docker,我们的镜像的组成,需要哪些Baseimage、需要拷贝什么文件、需要安装什么依赖、启动脚本是什么,将来Docker会帮助我们构建镜像。 Dockerfile就是一个文本文件,其中包含一个个的指令(Instruction),用指令来说明要执行什么操作来构建镜像。每一个指令都会形成一层Layer。
# 指定基础镜像
From ubuntu:16.04
# 配置环境变量,JDK的安装目录
env JAVA_DIR=/usr/local
# 拷贝jdk和java项目的包
COPY ./jdk8.tar.gz $JAVA_DIR/
COPY ./docker-demo.jar /tmp/app.jar
# 安装JDK
RUN cd $JAVA_DIR
&& tar -xf ./jdk8.tar.gz
&& mv ./jdk1.8.0_144 ./java8
# 配置环境变量
ENV JAVA_HOME=$JAVA_DIR/java8
ENV PATH=$PATH:$JAVA_HOME/bin
# 暴露端口
ExpOSE 8090
# 入口,java项目的启动命令
ENTRYPOINT java -jar /tmp/app.jar
docker build -t javaweb:1.0
虽然我们可以基于Ubuntu基础镜像,添加任意自己需要的安装包,构建镜像,但是却比较麻烦。所以大多数情况下,我们都可以在一些安装了部分软件的基础镜像上做改造。
例如,构建java项目的镜像,可以在已经准备了JDK的基础镜像基础上构建。
需求:基于java:8-alpine镜像,将一个Java项目构建为镜像
实现思路如下:
① 新建一个空的目录,然后在目录中新建一个文件,命名为Dockerfile
② 拷贝课前资料提供的docker-demo.jar到这个目录中
③ 编写Dockerfile文件:
a )基于java:8-alpine作为基础镜像
b )将app.jar拷贝到镜像中
c )暴露端口
d )编写入口ENTRYPOINT
内容如下:
From java:8-alpine
COPY ./app.jar /tmp/app.jar
EXPOSE 8090
ENTRYPOINT java -jar /tmp/app.jar
④ 使用docker build命令构建镜像
⑤ 使用docker run创建容器并运行
随风
以上是脚本宝典为你收集整理的简单使用Docker全部内容,希望文章能够帮你解决简单使用Docker所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。