docker入门

1、docker安装centos7

1、删除旧版本

sudo yum remove docker \

docker-client \

docker-client-latest \

docker-common \

docker-latest \

docker-latest-logrotate \

docker-logrotate \

docker-engine

2、安装一些工具包

sudo yum install -y yum-utils \

3、设置镜像的仓库

sudo yum-config-manager \
 --add-repo \
 http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

5、更新软件源

yum makecache fast

6、安装最新版本

sudo yum install docker-ce docker-ce-cli containerd.io

7、启动docker

systemctl start docker

8、测试docker

sudo docker run hello-world

9、阿里云镜像加速

https://cr.console.aliyun.com/cn-shanghai/instances/mirrors

配置

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://xxx.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

2、常用命令

1、帮助命令

# 查看版本
docker version 
# 显示docker的系统信息包括镜像和容器
docker info

2、镜像命令

# 查看所有镜像
docker images
# 列出所有镜像
docker images -a
# 只显示镜像的id
docker images -q

# 搜索镜像
docker search xxx
# 过滤搜索大于等于
docker search xxx --filter=stars=200

# 拉取镜像下载镜像(最新版本)
docker pull xxx
# 拉取镜像下载镜像(指定版本)
docker pull xxx:xxx

# 删除镜像(-f强制)
docker rmi -f 镜像id

3、容器命令

# 拉取容器下载镜像(最新版本)
docker pull xxx
# 拉取容器下载镜像(指定版本)
docker pull xxx:xxx

# 启动并进入容器,根据镜像创建一个容器并运行一个命令,操作的对象是 镜像;
docker run -it xxx /bin/bash

# 进入容器,新开一个命令行在运行的容器中执行命令,操作的对象是 容器。
docker exec -it 容器id /bin/bash
# 进入容器,当前正在运行的命令行
docker attach 容器id

# 容器停止并退出
exit
# 容器不停止退出
Ctrl + P + Q

# 查看有哪些容器,正在运行的
docker ps
# 查看有哪些容器,正在运行的和没在运行的都列出来
docker ps -a

# 移除容器,但是镜像文件还在
docker rm 容器id

# 启动和停止容器
docker start 容器id
docker restart 容器id
docker stop 容器id
docker kill 容器id

4、其他常用命令

# 后台启动
docker run -d centos
# 后台启动,并且指定端口 -p 服务器端口:docker容器端口
docker run -p 80:80 -d nginx

# 显示日志
docker logs --tf --tail 条数 容器id

# 把容器的文件拷贝到主机中
docker cp 容器id:容器中文件的目录(/home/test.java) 主机目录(/home)

# 提交一个自己的镜像
docker commit -m="描述信息" -a="作者" 容器id 目标镜像名

#容器卷相关
# 所有相关命令
docker volume --help
# 查看有哪些卷
docker volume ls
# 查看具体卷配置
docker volume inspect 卷名

#查看当前镜像怎么构建的,构建步骤
docker history 镜像id

在这里插入图片描述

3、常用工具安装

1. nginx

安装:docker pull nginx

运行:docker run -p 80:80 -d nginx/id

2. tomcat

安装:docker pull tomcat:9.0.54

运行:docker run -p 8080:8080 tomcat/id

3. docker 可视化工具

安装并运行:docker run -d -p 8088:9000 --restart=always -v /var/run/docker.sock:/var/run/docker.sock --privileged=true portainer/portainer

运行:docker run -d -p 8088:9000 portainer/portainer

4. mysql

下载安装并挂载文件

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

4、容器数据卷

1. 什么是容器卷技术

  1. 不同位置的文件夹双向绑定数据
  2. 容器里面的文件夹和本地的文件夹数据双向绑定,修改数据文件,都会同步。

2. 使用

docker run -it -v 本地主机文件位置:容器文件位置 容器名字或者id /bin/bash

3. 具名挂载、匿名挂载、指定路径挂载

具名挂载和匿名挂载后,文件都在宿主机的/var/lib/docker/volumes/xxx/_data中

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

相关命令:

# 所有相关命令
docker volume --help
# 查看有哪些卷
docker volume ls
# 查看具体卷配置
docker volume inspect 卷名

4. 数据卷容器

多个容器通过数据卷进行共享数据

命令:–volumes-form 要被共享的容器

docker run -d .. -p.. --volumes-form 要被共享的容器
例:docker run -d -p 3310:3306 -e MYSQL_ROOT_PASSWORD=123456 --name mysql02 --volumes-form mysql01 mysql:5.7

5、DockerFile

构建自己镜像的脚本文件

1. 常用指令

#基础镜镜像,—切从这里开始构建
FROM
#镜像是谁写的,姓名+邮箱
MAINTAINER
#镜像构建的时候需要运行的命令
RUN
#步骤: tomcat镜像,这个tomcat压缩包!添加内容,如果添加的是压缩包,则会自动解压
ADD
#镜像的工作目录
WORKDIR
#挂载的目录
VOLUME["",""]
#默认开启端口配置
EXPOSE
#指定这个容器启动的时候要运行的命令,只有最后一个会生效,可被替代
CMD
#指定这个容器启动的时候要运行的命令,可以追加命令
ENTRYPOINT
#当构建一个被继承 DockerFile 这个时候就会运行 ONBUILD的指令。触发指令。
ONBUILD
#类似ADD ,将我们文件拷贝到镜像中
COPY
#构建的时候设置环境变量!
ENV

2. 使用

docker build -f DockerFile文件位置 -t 要构建的镜像名 .(注意有一个点)

docker build -f /dockerfile1 -t test/centos:1.0 .(不加版本号则会默认是latest)

3. 构建一个centos

from centos
MAINTAINER tuzhi<666666@qq.com>

ENV MYPATH /usr/local
WORKDIR $MYPATH

EXPOSE 80

CMD echo $MYPATH
CMD echo "===end==="
CMD /bin/bash

4. 构建一个tomcat

  1. 在服务器上上传tomcat文件盒和jdk文件,并且创建Dockerfile文件
FROM centos
MAINTAINER tuzhi
ADD jdk-8u221-linux-x64.tar.gz /usr/local/
ADD apache-tomcat-7.0.39.tar.gz /usr/local/
RUN yum install vim
ENV MYPATH /usr/local
WORKDIR $MYPATH
ENV JAVA_HOME /usr/local/jdk1.8.0_221
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV CATALINA_HOME /usr/local/apache-tomcat-7.0.39
ENV CATALINA_BASH /usr/local/apache-tomcat-7.0.39
ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/bin
EXPOSE 8080
CMD /usr/local/apache-tomcat-7.0.39/bin/startup.sh && tail -F /url/local/apache-tomcat-7.0.39/bin/logs/catalina.out


  1. 创建镜像

    docker build -t diytomcat .
    
  2. 运行镜像并且挂载文件夹

    docker run -d -p 9090:8080 --name tuzhitomcat -v /home/diytomcat-dockerfile/build/tomcat/test:/usr/local/apache-tomcat-8.0.30/webapps/test -v /home/diytomcat-dockerfile//build/tomcat/tomcatlogs/:/usr/local/apache-tomcat-8.0.30/logs diytomcat
    
    

5. 发布镜像

1. DockerHub

  1. 注册账号https://hub.docker.com/

  2. 登录

    docker login -u xxx -p xxx
    
  3. 在Docker Hub上创建仓库[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传在这里插入图片描述

  4. 修改镜像名和添加镜像版本

    docker tag 镜像id 镜像名称
    docker tag xxx tuzhii/diytomcat:1.0
    
  5. 发布(只能发布带有版本号的,镜像名要和Docker Hub上的仓库名一样)

    docker push 镜像名:版本号
    docker push tuzhii/diytomcat:1.0
    

2. 阿里云

  1. 选择容器镜像服务

  2. 创建容器实例

  3. 创建镜像仓库:仓库信息选择本地仓库

  4. 登录

    docker login --username xxx(阿里云中有给)
    
  5. 修改镜像名称和添加版本

    docker tag 镜像id 镜像名称
    docker tag xxx tuzhii/diytomcat:1.0
    
  6. 上传发布(只能发布带有版本号的,镜像名要和Docker Hub上的仓库名一样)

    docker push 镜像名:版本号
    docker push tuzhii/diytomcat:1.0
    

6. 小节

在这里插入图片描述

6、Docker 网络

1. 自定义网络(类似网卡,另外一个网络段区域)

1. 自定义网络打通容器之间的网络通讯

docker network create --driver bridge --subnet 192.168.0.0/16 --gatway 192.168.0.1 mynet

2. 把容器注册到自己的网络中就可以互通了

使用–net

docker run -d -P --name tomcat01 --net mynet tomcat
docker run -d -P --name tomcat02 --net mynet tomcat

2.不同网络的容器联通

docker network connect mynet tomcat03(在docker0网卡下的)

7、打包自己都SpringBoot项目镜像并运行

  1. 在项目根目录创建DockerFile

    FROM java:8
    COPY *.jar /app.jar
    CMD ["--server.port=8080"]
    EXPOSE 8080
    ENTRYPOINT ["java","-jar","/app.jar"]
    
  2. 把jar包和DockerFile上传到服务器中

  3. 构建镜像:docker build -t testSpringboot .

  4. 运行镜像:docker run -d -P --name SpringbootTest testSpringboot

omcat


## 2.不同网络的容器联通

~~~bash
docker network connect mynet tomcat03(在docker0网卡下的)

7、打包自己都SpringBoot项目镜像并运行

  1. 在项目根目录创建DockerFile

    FROM java:8
    COPY *.jar /app.jar
    CMD ["--server.port=8080"]
    EXPOSE 8080
    ENTRYPOINT ["java","-jar","/app.jar"]
    
  2. 把jar包和DockerFile上传到服务器中

  3. 构建镜像:docker build -t testSpringboot .

  4. 运行镜像:docker run -d -P --name SpringbootTest testSpringboot

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值