Docker镜像操作

Docker镜像操作

下载镜像

语法:docker pull 镜像名
案例:

docker pull hello-world

浏览镜像文件

语法:

docker images

查看镜像详情

语法:docker inspect 镜像名或镜像id

docker inspect hello-world

查看镜像历史

一个镜像是由多个层(layer)组成的,那么,我们要如何知道各个层的具体内容呢?通过 docker history 命令,可以列出各个层(layer)的创建信息,例如:

docker history hello-world

导出镜像文件

镜像导出(linux系统中的镜像文件下载到本地-例如window),导出后给他人使用

docker save hello-world | gzip > hello-world.tar.gz

删除镜像文件

语法:docker image rm 镜像名或镜像id

docker image rm hello-world

导入镜像操作

镜像导入(要在hello-world.tar.gz 文件所在目录下执行)

docker load < hello-world.tar.gz

运行镜像文件

基于镜像,启动容器运行。

docker run hello-world

Docker镜像制作

制作JDK镜像

准备工作

  1. centos:7镜像 (所有的镜像文件创建时都需要有一个空的centos镜像,就类似通过一个空的光盘或u盘创建一个系统启动盘是一样的)
  2. jdk压缩包

创建Dockerfile文件

在创建新的镜像时都需要有一个Dockerfile文件(文件名一定要注意大小写),这个文件中定义镜像制作过程,这一小结以JDK镜像制作过程为例,讲解Dockerfile文件以及文件内容.

第一步:进入jdk-8u51-linux-x64.tar.gz文件所在目录,基于vim创建Dockerfile文件,例如

vim Dockerfile

说明,这里一定要注意文件的大小写.

第二步:按键盘上的"i"进入编辑模式

第三步:拷贝如下代码到你的Dockerfile中,例如:

FROM centos:7 ADD jdk-8u51-linux-x64.tar.gz /usr/local/docker ENV
JAVA_HOME=/usr/local/docker/jdk1.8.0_51
PATH=/usr/local/docker/jdk1.8.0_51/bin:$PATH CMD [‘bash’]

第四步:拷贝完成,按ESC进入命令行模式(又叫最后一行模式)
第五步:然后按shift+冒号,输入wq保存退出
在这里插入图片描述

创建JDK镜像文件

在Dockerfile所在目录执行docker build指令.例如:

docker build -t jdk:8 . #不要丢掉这里的点,-t表示镜像标识(镜像名),是tag单词的缩写.

运行JDK镜像(image)文件

在宿主机中执行如下指令,启动JDK容器,例如:

docker run -it jdk:8 bash

进入容器以后,可以通过echo $PATH查看环境变量(注意单词大小写),并可以通过java –version查看JDK版本信息。
在这里插入图片描述

制作Sentinel镜像

准备工作

  1. centos:7镜像
  2. jdk-8u51-linux-x64.tar.gz
  3. sentinel-dashboard-1.8.1.jar

说明,通过docker images指令查看centos:7是否存在,然后将 jdk-8u51-linux-x64.tar.gz,sentinel-dashboard-1.8.1.jar放在/root/setup/sentinel目录(目录不存在的话自己创建)

构建Sentinel镜像

第一步:在sentinel所在目录创建Dockerfile文件,并添加如下内容

FROM centos:7 ADD jdk-8u51-linux-x64.tar.gz /usr/local/ ADD
sentinel-dashboard-1.8.1.jar /usr/local/ ENV
JAVA_HOME=/usr/local/jdk1.8.0_51
PATH=/usr/local/jdk1.8.0_51/bin:$PATH EXPOSE 8080 ENTRYPOINT [“java”,"-jar","/usr/local/sentinel-dashboard-1.8.1.jar"]

其中,EXPOSE表示对外暴露的服务端口,ENTRYPOINT中写的是你容器启动时候要执行的指令.

第二步:使用 Dockerfile 构建镜像(在Dockerfile所在目录执行docker指令)

docker build -t sentinel:8 . #不要丢掉这里的点

第三步:后台运行sentinel容器

docker run -d --name sentinel8181 -p 8181:8080 sentinel:8 #-d
表示后台运行,-p用于指定端口映射,sentinel:8为镜像文件名

第四步:查看sentinel容器

docker ps

假如看不到容器,可通过"docker container logs 容器id"方式查看容器状态.

第五步:访问sentinel服务

可以在window中访问时你的linux系统中启动的sentinel服务,ip地址应该为宿主机的ip地址,端口号为宿主机的端口号

安装MySql数据库

安装步骤

第一步:在hub.docker.com上搜索mysql镜像
第二步:拉取指定版本的mysql,也可以指定拉取版本,例如:

docker pull mysql:8.0.23

第三步:检查mysql镜像

docker images

第四步:启动运行mysql镜像 (docker run 用于启动一个容器)

sudo docker run -p 3306:3306 --name mysql
-v /usr/local/docker/mysql/mysql-files:/var/lib/mysql-files
-v /usr/local/docker/mysql/conf:/etc/mysql
-v /usr/local/docker/mysql/logs:/var/log/mysql
-v /usr/local/docker/mysql/data:/var/lib/mysql
-e MYSQL_ROOT_PASSWORD=root
-d mysql:8.0.23

假如安装过程中失败了,则可通过docker ps -a 查看以前的容器,假如已存在,则通过docker rm 镜像id 删除再重新安装即可。

登陆mysql服务

第一步:进入容器 (退出容器用exit)

sudo docker exec -it mysql bash

第二步:登陆(默认密码root),一定要先进入mysql容器。

mysql -uroot -proot

停止和启动mysql服务
停止mysql服务

docker stop mysql

启动mysql服务

docker start mysql

假如希望查看mysql启动时的日志,可以执行 docker container logs mysql 这个指令。

设置mysql开机自启动

docker update mysql --restart=always

安装Redis数据库

安装步骤
第一步:下载镜像文件

docker pull redis

第二步:准备配置文件

创建redis配置文件目录

mkdir -p /usr/local/docker/redis01/conf

在配置文件录下创建redis.conf配置文件(这个文件一定要创建,否在我们进行目录挂载时默认生成的是一个目录)

touch /usr/local/docker/redis01/conf/redis.conf

第三步:创建redis实例并启动

sudo docker run -p 6379:6379 --name redis01
-v /usr/local/docker/redis01/data:/data
-v /usr/local/docker/redis01/conf/redis.conf:/etc/redis/redis.conf
-d redis redis-server /etc/redis/redis.conf

第四步:查看正在运行的进程

docker ps

访问redis服务器

第一步:控制台直接连接redis测试

docker exec -it redis01 bash

第二步:检测redis 版本

redis-server -v

或者

redis-cli -v

第三步:登录redis(默认不需要密码)

redis-cli
redis-cli -h ip -p port -a password # 登录远端服务器redis

或者直接将上面的两个步骤合为一个步骤执行也可以,指令如下:

docker exec -it redis01 redis-cli

停止和启动redis服务
停止redis服务?

docker stop redis01

启动redis服务?

docker start redis01

重启 redis 服务?

docker restart redis01

安装Nginx代理

安装步骤
第一步:拉取nginx镜像 (从这里hub.docker.com去查找)

docker pull nginx

第二步:查看images镜像

docker images

第三步:创建数据卷(这个对象会在宿主机直接创建一个目录)

docker volume create nginx-vol

说明:查看数据卷对应的宿主机目录,可以通过如下指令:

docker inspect nginx-vol

第四步:启动nginx服务

docker run --name nginx -p 80:80 -v nginx-vol:/etc/nginx -d nginx

其中:/etc/nginx 为nginx容器启动时,nginx镜像文件默认的解压目录

说明:假如以后想修改nginx配置,可以直接去nginx-vol数据卷对应的目录去修改.

访问nginx服务

停止和nginx服务

停止nginx服务

docker stop nginx

启动nginx服务

docker start nginx

重启nginx服务

docker restart nginx

安装Nacos组件

安装步骤

第一步:拉取nacos(hub.docker.com)

docker pull nacos/nacos-server:1.4.1

第二步: mysql中执行nacos的sql脚本文件

1)将此文件nacos-mysql.sql(这个文件可从code服务器下载)拷贝到mysql容器的宿主机对应的挂载目录(可通过docker inspect mysql查看你mysql的挂载目录)

2)在linux环境下启动并登录mysql

进入mysql容器(前提是mysql已启动)

docker exec -it mysql bash

登录mysql

mysql -uroot -p

3)通过source指令运行容器目录下的sql文件

source /etc/mysql/nacos-mysql.sql
#这里的/etc/mysql为容器中的一个目录(要选择你自己挂载的目录)

例如:

第三步:创建并启动nacos容器(拷贝下面内容时,账号和密码要用自己宿主机ip,自己数据库的账号密码)

docker run
-e TZ=“Asia/Shanghai”
-e MODE=standalone
-e SPRING_DATASOURCE_PLATFORM=mysql
-e MYSQL_DATABASE_NUM=1
-e MYSQL_SERVICE_HOST=192.168.126.129
-e MYSQL_SERVICE_PORT=3306
-e MYSQL_SERVICE_USER=root
-e MYSQL_SERVICE_PASSWORD=root
-e MYSQL_SERVICE_DB_NAME=nacos_config
-p 8848:8848
–name nacos
–restart=always
-d nacos/nacos-server:1.4.1

参数说明

单节点模式
MODE=standalone
数据库地址
MYSQL_SERVICE_HOST
数据库用户名
MYSQL_SERVICE_USER
数据库密码
MYSQL_SERVICE_PASSWORD
需连接的数据库名称
MYSQL_SERVICE_DB_NAME
端口映射
-p 8848:8848
任意时候重启容器,开机就能自动启动容器(需设置docker为开机自启)

–restart=always
第四步:检查nacos服务

docker ps

假如启动失败,检查启动日志,例如:

docker container logs nacos

其中,nacos的启动日志在/home/nacos/logs/start.out文件中。

访问nacos服务
启动nacos,然后在windows中输入http://ip:port/nacos方式进行访问测试
说明,nacos登录时,默认用户名和密码都是nacos.

停止和启动nacos服务

停止nacos服务

docker stop nacos

启动nacos服务

docker start nacos

重启nacos服务

docker restart nacos

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小码不掉头发

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值