docker的基本使用

docker学习

为什么使用docker?

使用docker的原因是

Docker为什么出现?
一款产品:开发–上线两套环境!应用环境,应用配置!
开发 ---- 运维。问题:我在我的电脑上可以运行!版本更新,导致服务不可用! 对于运维来说,考验就非常大
环境配置是十分的麻烦,每一个机器都要部署环境(集群Redis、ES、Hadoop… )!费时费力。发布一个项目(jar +( Redis MySQLjdk ES)),项目能不能都带上环境安装打包!
之前在服务器配置一个应用的环境Redis MySQL jdk ES Hadoop,配置超麻烦了,不能够跨平台。
Windows,最后发布到Linux !
传统:开发jar,运维来做!
现在:开发打包部署上线,一套流程做完!

java – apk --发布(应用商店)---- 张三使用apk — 安装即可用!
java — jar(环境)----打包项目带上环境(镜像)----(Docker仓库:商店)

Docker给以上的问题,提出了解决方案!

docker的安装

docker的基本组成

安装docker

直接去docker文档观看。

windowns安装直接安装docker desk ,

docker镜像命令

​ docker images查看所有本地主机上的镜像

docker images
docker rmi
docker pull
docker push
docker save 
docker load
docker save -o redis2.tar redis.latest #将拉起下来的镜像导出镜像到磁盘 打包为redis2.tar包
docker load -i redis2.tar #使用docker load加载镜像
练习
去DockerHub搜索并拉取一个Redis镜像

去DockerHub搜索Redis镜像
查看Redis镜像的名称和版本
利用docker pull命令拉取镜像
利用docker save命令将 redis:latest打包为一个redis.tar包
利用docker rmi 删除本地的redis:latest
利用docker load 重新加载 redis.tar文件

docker images --a //列出所有镜像
docker images --q //只显示镜像d

docker search 搜索镜像

docker search +镜像名称;但还是建议去dockerhub上面搜索,dockerhub上面的全并且还有版本信息
例如:docker search mysql 

C:\Users\asus>docker search mysql
NAME                            DESCRIPTION                                      STARS     OFFICIAL   AUTOMATED
mysql                           MySQL is a widely used, open-source relation…   14556     [OK]
mariadb                         MariaDB Server is a high performing open sou…   5557      [OK]
percona                         Percona Server is a fork of the MySQL relati…   620       [OK]

​	通过搜索来过滤掉一些信息用 

​		--filter=STARS=3000 #搜索出来的镜像STARS就是大于300的	
例如:docker search mysql --filter=STARS=300

C:\Users\asus>docker search mysql --filter=STARS=3000
NAME      DESCRIPTION                                      STARS     OFFICIAL   AUTOMATED
mysql     MySQL is a widely used, open-source relation…   14556     [OK]
mariadb   MariaDB Server is a high performing open sou…   5557      [OK]

docker rmi 删除镜像

docker rmi -f 容器id  #根据容器id删除容器
docker rmi -f 容器id 容器id 容器id  #删除多个容器
docker rmi -f $(docker images -aq) #删除全部容器,-aq表示所有容器id

docker容器命令

新建容器并启动容器

docker run [可选参数] image
#参数说明
--name="Name"  容器名称 tomcat01 tomcat02,用来区分容器
-d             后台运行方式
-it            使用交互式方式运行,进入容器来查看容器
-p             指定容器的端口 -p 8080:8080
		-p ip:主机端口:容器端口
		-p 主机端口:容器端口(常用)
		容器端口
#测试,启动容器并进入容器
C:\Users\asus>docker run -it centos /bin/bash
[root@644248d1c382 /]# ls
bin  dev  etc  home  lib  lib64  lost+found  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
[root@644248d1c382 /]#

退出容器方式

exit          #直接停止容器并且退出,退回到主机·
Ctrl + p +Q   #退出容器但不停止容器,退回到主机

进入容器方式

#容器一般都是后台运行的,当我们要修改容器内的一些配置时我们就需要从新进入容器
docker exec   #进入容器后开启一个新的终端,可以在里面操作(常用)
docker exec -it 容器id或者容器名称 /bin/bash

C:\Users\asus>docker exec -it 644248d1c382 /bin/bash
[root@644248d1c382 /]#

docker attach #进入容器正在执行的终端,不会启动新的进程
docker attach 容器id

C:\Users\asus>docker attach 644248d1c382
[root@644248d1c382 /]#

列出所有运行的容器

# docker ps 命令
		#不加任何参数表示列出正在运行的容器
-a		#列出正在运行的容器+带出历史运行过的容器
-n=?    #显示最近运行的容器
-q      #只显示正在运行容器的id
-aq     #列出所有运行过的容器id
C:\Users\asus>docker ps
CONTAINER ID   IMAGE     COMMAND       CREATED          STATUS          PORTS     NAMES
644248d1c382   centos    "/bin/bash"   25 minutes ago   Up 25 minutes             laughing_hugle


C:\Users\asus>docker ps -a  #列出正在运行的容器+带出历史运行过的容器
CONTAINER ID   IMAGE                   COMMAND                   CREATED          STATUS                     PORTS                                                                                        NAMES
644248d1c382   centos                  "/bin/bash"               26 minutes ago   Up 26 minutes                                                                                                           laughing_hugle
c0f272639202   nginx                   "/docker-entrypoint.…"   18 hours ago     Exited (0) 18 hours ago                                                                                                 nginx3
faa69235f778   centos                  "/bin/bash"               36 hours ago     Exited (0) 19 hours ago                                                                                                 confident_kepler
30b215a75add   centos                  "/bin/bash"               36 hours ago     Exited (0) 36 hours ago                                                                                                 pensive_bardeen
d3656a50622d   centos                  "/bin/bash"               36 hours ago     Exited (0) 36 hours ago    

C:\Users\asus>docker ps -n=1  #显示最近运行的容器
CONTAINER ID   IMAGE     COMMAND       CREATED          STATUS          PORTS     NAMES
644248d1c382   centos    "/bin/bash"   31 minutes ago   Up 31 minutes             laughing_hugle


C:\Users\asus>docker ps -q #只显示正在运行容器的id
644248d1c382


C:\Users\asus>docker ps -aq  #列出所有运行过的容器id
644248d1c382
c0f272639202
faa69235f778
30b215a75add
d3656a50622d

启动和停止容器

docker start 容器id  #启动容器
docker restart 容器id #重启容器
docker stop 容器id #停止正在运行的容器
docker kill 容器id  #强制停止当前容器


C:\Users\asus>docker restart 644248d1c382
644248d1c382
C:\Users\asus>docker ps
CONTAINER ID   IMAGE     COMMAND       CREATED             STATUS         PORTS     NAMES
644248d1c382   centos    "/bin/bash"   About an hour ago   Up 6 seconds             laughing_hugle

C:\Users\asus>docker stop 644248d1c382
644248d1c382

C:\Users\asus>docker ps
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES

删除容器

docker rm 容器id   #删除指定的容器,不能删除正在运行的容器,如果要强制删除 rm-f
docker rm -f $(docker ps -aq) #删除所有容器
docker ps -a -q|xargs docker rm #删除所有容器

其他容器命令

后台启动容器

  #命令 docker run -d 镜像名
  
  C:\Users\asus>docker run -d centos
cae985fe1b971eb1a7abe1354ffe547302fe87687e208adc944ae283c014f261

C:\Users\asus>docker ps
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES

#docker ps 发现docker 停止了
#常见的docker坑,docker 容器使用后台运行,就必须要有一个前台进程,docker发现没有应用,就会自动停止

查看日志

docker logs -f -t --tail 容器
#显示日志
-tf  #显示日志
--tail number  #显示日志条数
docker logs -f 容器id #可持续查看日志

查看容器中的进程信息

# 命令 docker top 容器id

C:\Users\asus>docker top 015c6c3ac986
UID                 PID                 PPID                C                   STIME               TTY                 TIME                CMD
root                8184                8162                0                   07:11               ?                   00:00:00            /bin/bash

查看镜像的原数据

docker inspect 容器id
C:\Users\asus>docker inspect 015c6c3ac986
[
    {
        "Id": "015c6c3ac9865fc0971b5fc3702686417953634084dc25545a1e5aaa9bae7e22",
        "Created": "2023-10-29T07:11:50.249712361Z",
        "Path": "/bin/bash",
        "Args": [],
        "State": {
            "Status": "running",
            "Running": true,
            "Paused": false,
            "Restarting": false,
            "OOMKilled": false,
            "Dead": false,
            "Pid": 8184,
            "ExitCode": 0,
            "Error": "",
            "StartedAt": "2023-10-29T07:11:50.56322185Z",
            "FinishedAt": "0001-01-01T00:00:00Z"
        },
        .
        .
        .

从容器内拷贝文件到主机上

docker cp 容器id :容器内路径 目的路径
#进入容器内部
docker attach 容器id
cd /home #进入容器的home文件内
touch test.java #执行这条语句,是在home里面创建一个test.java文件
exit #退出并停止容器
docker cp 容器id : /home/test.java  /home

作业练习

#docker run -d --name nginx02 -p 3456:80 nginx
C:\Users\asus>docker run -d --name nginx02 -p 3456:80 nginx
68ceb67caa472aeb9d75fa6014d4ab579562952320114cfd6e8e2c6507616429

C:\Users\asus>curl localhost:3456 #在终端连接nginx02容器
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
html { color-scheme: light dark; }
body { width: 35em; margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif; }
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>

<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>

<p><em>Thank you for using nginx.</em></p>
</body>
</html>

C:\Users\asus>docker ps
CONTAINER ID   IMAGE     COMMAND                   CREATED          STATUS          PORTS                  NAMES
68ceb67caa47   nginx     "/docker-entrypoint.…"   2 minutes ago    Up 2 minutes    0.0.0.0:3456->80/tcp   nginx02

作业2

创健es和kibana

docker run -d \
	--name es \
    -e "ES_JAVA_OPTS=-Xms512m -Xmx512m" \
    -e "discovery.type=single-node" \
    -v es-data:/usr/share/elasticsearch/data \
    -v es-plugins:/usr/share/elasticsearch/plugins \
    --privileged \
    --network es-net \
    -p 9200:9200 \
    -p 9300:9300 \
elasticsearch:7.12.1

命令解释:

- `-e "cluster.name=es-docker-cluster"`:设置集群名称
- `-e "http.host=0.0.0.0"`:监听的地址,可以外网访问
- `-e "ES_JAVA_OPTS=-Xms512m -Xmx512m"`:内存大小
- `-e "discovery.type=single-node"`:非集群模式
- `-v es-data:/usr/share/elasticsearch/data`:挂载逻辑卷,绑定es的数据目录
- `-v es-logs:/usr/share/elasticsearch/logs`:挂载逻辑卷,绑定es的日志目录
- `-v es-plugins:/usr/share/elasticsearch/plugins`:挂载逻辑卷,绑定es的插件目录
- `--privileged`:授予逻辑卷访问权
- `--network es-net` :加入一个名为es-net的网络中
- `-p 9200:9200`:端口映射配置

端口暴露概念


在这里插入图片描述

提交一个镜像

#docker commit 提交容器成为一个新的副本,因为当我们在一个原来的容器里做了一些添加修改时,由docker 分层原理可以知道,会在里面添加一层新的镜像。我们可以将这一个容器提交,从而形成一个新的容器,但原来的容器并没有被改变。
docker commit -m="提交的描述信息" -a="作者" 容器id 目标镜像:[tag]

容器数据卷

**数据卷(volume)**是一个虚拟目录,指向宿主机文件系统中的某个目录

如果数据都放在容器中,那么容器删除,数据就会丢失! 需求:数据可以持久化 \textcolor{red}{需求:数据可以持久化} 需求:数据可以持久化

MySQL,容器删除了,删库跑路! 需求: M y S Q L 数据可以存储在本地 \textcolor{red}{需求:MySQL 数据可以存储在本地} 需求:MySQL数据可以存储在本地

容器之间可以有一个数据共享技术,Docker 容器中产生的数据,同步到本地

目录挂载:将容器内的目录,挂在到 Linux 上面

#方式一:使用-v来挂数据卷
docker run -v -it 主机目录:容器目录
docker run -it -v /计算机 :/hom centos /bin/bash

D:\计算机>docker run -it -v /计算机:/home centos /bin/bash
[root@3db23bcbaacf /]#
D:\计算机>docker ps
CONTAINER ID   IMAGE     COMMAND       CREATED              STATUS              PORTS     NAMES
3db23bcbaacf   centos    "/bin/bash"   About a minute ago   Up About a minute             awesome_torvalds

在这里插入图片描述

实战:安装mysql

思考:mysql的数据持久化的问题!
docker pull mysql #拉取mysql镜像
#运行容器,需要做数据挂载! #安装启动mysql ,需要配置密码的,这点需要注意
#官方测试:docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag

#启动我们的
-d #后台启动
-p 端口映射
-v 数据挂载
-e 环境配置
--name 容器名字
实践:一次挂载多个文件
#docker run -d -p 3310:3306 -v /home/mysql/conf:/etc/mysql/conf.d -v /home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --name mysql01 mysql:5.7

#启动成功之后可以用idea去连接端口3310测试
#在本地创建一个数据库,查看映射端口是否ok

用idea去测试一下3310端口,看是否能连接到或者用其他工具也行

当我们将容器删掉后,发现本地的挂载数据并不会丢失

具名和匿名挂载

#匿名挂载
-v 容器路径
docker run -d -P --name nginx01 -v /ect/nginx nginx # 大表示随意映射端口

C:\Users\asus>docker run -d -P --name nginx01 -v /ect/nginx nginx
a344e5c6bd7c3ce7b011d093def069f0455290b81493263fd0ebaf0f37ba7794

#查看所有的volume的情况
C:\Users\asus>docker volume ls
DRIVER    VOLUME NAME
local     4aabd90212e50b7bf7376af5478d81b4fa4a5a25979fea805daf6bb9e17f12af
#这里发现数据卷名是一个随机的字符串,这种就是匿名挂载,我们在 -v 只写了容器内的路径,没有写容器外的路径

#具名挂载
docker run -d -P --name nginx02 -v juming:/ect/nginx nginx

C:\Users\asus>docker volume ls
DRIVER    VOLUME NAME
local     juming
所有的docker 容器内的卷,没有指定目录的情况下都是在 /var/bin/docker/volumes/xxx/_data
我们通过具名挂载的方式可以很方便的找到我们的一个数据卷,大多数情况在使用的都是 具名挂载

如何确定是具名挂载还是匿名挂载,还是指定路径挂载

-v 容器路径 #匿名挂载
-v 卷名:容器路径 #具名挂载
-v /宿主机路径:容器内路径 #指定路径挂载

拓展:

#通个 -v 容器路径,ro rw 改写读写权限
ro  readonly #只读
rw readwrite #可读可写
# 一旦设置了这个容器权限,容器对我们挂载出来的内容就有了限定
docker run -d -P --name ngingx2 -v jumming-nginx:/etc/nginx:ro  nginx #只读
docker run -d -P --name ngingx2 -v jumming-nginx:/etc/nginx:rw  nginx #可读可写
#只要看到ro就说明这个路径只能通个宿主机来操作,容器内部无法操作

初识dockerfile

创建docker镜像的方式:

方式一;是在容器或者镜像里去做修改后通个docker commit提交一个副本镜像或者容器

#docker commit 提交容器成为一个新的副本,因为当我们在一个原来的容器里做了一些添加修改时,由docker 分层原理可以知道,会在里面添加一层新的镜像。我们可以将这一个容器提交,从而形成一个新的容器,但原来的容器并没有被改变。
docker commit -m="提交的描述信息" -a="作者" 容器id 目标镜像:[tag]

方式二;通过dockerfile来创建一个镜像和docker build 来创建一个新的镜像

dockerfile是用来构建docker镜像的构建文件或者命令脚本

通个这个脚本可以生成镜像,镜像是一层一层的,脚本是一个一个的命令,每个命令都是一层镜像

#创建一个dockerfile 文件,名字可以随机设置 建议使用dockerfile
#文件中的内容 指令(指令要全部大写) 参数
在windows操作系统下,在cmd命令下输入:notepad +文件名;表示进入文本文件并且编写内容
例如;编写内容为

C:\Users\asus>D:#进入d盘

D:\>mkdir Dockerfile #创建一个文件,文件名为Dockerfile

D:\>cd Dockerfile

D:\Dockerfile>nodepad  mydockerfile #进入文本文件并且编写内容,mydockerfile会自动创建

#下一步就是在mydockerfile编写以下内容

FROM centos

MAINTAINER guanzong<2301058778@qq.com>

ENV MYPATH /usr/local

WORKDIR $MYPATH

RUN yum -y install vim

RUN yum -y install net-tools

EXPOSE 80

CMD echo $MYPATH

CMD echo "---end---"

CMD /bin/bash

#编写好文件后回到控制台执行以下命令
docker build -f /Dockerfile/mydockerfile.txt  -t fanliangguan/centos:1.0 . #创建一个镜像
-f #构建镜像的文本文件位置
-t #版本和名称;name:tag


然后在控制台执行docker build 创建一个镜像
再通个docker run 将镜像运行起来
docker push 推送镜像

数据卷容器

数据容器就是多个容器之间通个数据卷挂载的方式进行数据共享

#这种共享可以理解为双向绑定(拷贝)的的或者继承的方式,当另一个容器被删除时另一个容器同步的数据并不会丢失,当在其中一个里做修改时另一个也会跟着变化
docker run -it --name docker02 --volume-from  docker01 fanliangguan/centos:1.0


容器之间的配置信息的传递,数据卷容器的生命周期一直持续到容器没有使用为止
但一旦持久化到本地时,本地的数据是不会丢失的

Dockerfile

dockerfile 是用来构建dokcer镜像的文件!命令参数脚本!
构建步骤:
1、编写一个dockerfile文件
2、docker build构建成为一个镜像
3、docker run 运行镜像
4、docker push 发布镜像(DockerHub、阿里云镜像仓库!)

DockerFile构建过程

基础知识:
1、每个保留关键字(指令)都是必须是大写字母
2、执行从上到下顺序执行
3、#表示注释
4、每一个指令都会创建提交一个新的镜像层,并提交!

dockerfile是面向开发的,我们以后要发布项目,做镜像,就需要编写dockerfile文件,这个文件十分简单!
Docker镜像逐渐成为企业交付的标准,必须要掌握!步骤:开发,部署,运维。。。缺一不可!
DockerFile:构建文件,定义了一切的步骤,源代码
Dockerlmages:通过DockerFile构建生成的镜像,最终发布和运行的产品! Docker容器:容器就是镜像运行起来提供服务器

DockerFile的指令

构建自己的镜像

以前的话我们就是使用别人的,现在我们知道了这些指令后,我们来练习自己写一个镜像!
FROM	# 基础镜镜像,一切从这里开始构建	
MAINTAINER	# 镜像是谁写的,姓名+邮箱	
RUN	# 镜像构建的时候需要运行的命令	
ADD	# 步骤: tomcat镜像,这个tomcat压缩包!添加内容	
WORKDIR	# 镜像的工作目录	
VOLUME	# 挂载的目录	
EXPOSE	# 保留端口配置	
CMD	# 指定这个容器启动的时候要运行的命令,只有最后一个会生效,可被替代	
ENTRYPOINT	# 指定这个容器启动的时候要运行的命令,可以追加命令	
ONBUILD	# 当构建一个被继承DockerFile这个时候就会运行ONBUILD 的指令。触发指令。	
COPY	# 类似ADD ,将我们文件拷贝到镜像中	
ENV	# 构建的时候设置环境变量!

实例:
FROM centos

MAINTAINER guanzong<2301058778@qq.com>

ENV MYPATH /usr/local

WORKDIR $MYPATH

RUN yum -y install vim

RUN yum -y install net-tools

EXPOSE 80

CMD echo $MYPATH

CMD echo "---end---"

CMD /bin/bash

实战Dockerfile制作tomcat镜像

dockerfile文件

FROM centos
MAINTAINER fanliangguan<2301058778@qq.com>

COPY readme.txt /usr/local/readme.txt

ADD jdk-17_linux-aarch64_bin.tar.gz /usr/local/
ADD apache-tomcat-8.5.95.tar.gz /usr/local/

RUN yum -y install vim

ENV MYPATH /usr/local
WORKDIR $MYPATHD

ENV JAVA_HOME /usr/local/jdk-17.0.9
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV CATALINA_HOME /usr/local/apache-tomcat-8.5.95
ENV CATALINA_BASH /usr/local/apache-tomcat-8.5.95
ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/bin

EXPOSE 8080

CMD /usr/local/apache-tomcat-8.5.95/bin/startup.sh && tail -F /usr/local/apache-tomcat-8.5.95/bin/logs/catalina.out

docker build

docker build -f Dockerfile.txt -t diytomcat:1.0 .

控制台

D:\home>docker build -f Dockerfile.txt -t diytomcat:1.0
ERROR: "docker buildx build" requires exactly 1 argument.
See 'docker buildx build --help'.

Usage:  docker buildx build [OPTIONS] PATH | URL | -

Start a build

D:\home>docker build -f Dockerfile.txt -t diytomcat:1.0 .
[+] Building 0.1s (10/10) FINISHED                                                                       docker:default
 => [internal] load build definition from Dockerfile.txt                                                           0.0s
 => => transferring dockerfile: 648B                                                                               0.0s
 => [internal] load .dockerignore                                                                                  0.0s
 => => transferring context: 2B                                                                                    0.0s
 => [internal] load metadata for docker.io/library/centos:latest                                                   0.0s
 => [1/5] FROM docker.io/library/centos                                                                            0.0s
 => [internal] load build context                                                                                  0.0s
 => => transferring context: 96B                                                                                   0.0s
 => CACHED [2/5] COPY readme.txt /usr/local/readme.txt                                                             0.0s
 => CACHED [3/5] ADD jdk-19.zip /usr/local/                                                                        0.0s
 => CACHED [4/5] ADD tomcat.zip /usr/local/                                                                        0.0s
 => CACHED [5/5] WORKDIR /usr/local                                                                                0.0s
 => exporting to image                                                                                             0.0s
 => => exporting layers                                                                                            0.0s
 => => writing image sha256:3adca91b6f2fc1fdd4efe3d4f5797c21ad512adf0c86623b060400a758420095                       0.0s
 => => naming to docker.io/library/diytomcat:1.0                                                                   0.0s

What's Next?
  View summary of image vulnerabilities and recommendations → docker scout quickview

D:\home>docker images
REPOSITORY      TAG            IMAGE ID       CREATED          SIZE
diytomcat       1.0            3adca91b6f2f   43 minutes ago   431MB
nginx           latest         605c77e624dd   22 months ago    141MB
redis           latest         7614ae9453d1   22 months ago    113MB
mysql           5.7            c20987f18b13   22 months ago    448MB
centos          latest         5d0da3dc9764   2 years ago      231MB
kibana          7.12.1         cf1c9961eeb6   2 years ago      1.06GB
elasticsearch   7.12.1         41dc8ea0f139   2 years ago      851MB
rabbitmq        3-management   95bc78c8d15d   3 years ago      187MB

D:\home>docker run -d -p 9099:8080 --name fanliangguanTomcat -v tomcatTest:/usr/local/apache-tomcat-8.5.95/webapps/test  diytomcat:1.0

发布自己的镜像

DockerHub

1,去docker上注册一个自己的账号hub.docker.com

2,确定这个账号能登录

3,在自己的服务器上提交自己的镜像

4.提交镜像前先在命令行里登录docker

docker login --help
选择docker login -p或者-u方式登录

5.登录后docker push 发布镜像

docker login --help

docker push 发布镜像必须加上自己的版本号

如:docker push diytomcat:1.0

如果没带版本号时会报错,报错的话可以用:docker tag 镜像id 镜像名称 :版本号;来改动版本号后再提交docker push

发布镜像的方式二;

用阿里云的容器服务管理发布:

1,登录阿里云

2,找到容器镜像服务

3,创建命名空间

4,创建容器镜像

根据阿里云的镜像容器服务文档,发布镜像

docker所有流程小结图片

docker网络

docker网络详解

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

容器互联–link

在这里插入图片描述

![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/fb8a00ffa9354470b768c34446b05edc.png
在这里插入图片描述

自定义网络

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

自定义网络即可以用ip ping通也可以用名称ping通

网络联通

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

redis集群部署实战

SpringBoot项目打包docker镜像实战

DockerCompose

docker swarm

CI/CD之jenkins

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值