Docker入门,附带 redis,tomcat,nginx,mysql的docker安装和springboot用Dockerfile打包启动

一、Docker安装与启动

这里建议在CentOS7.x以上的版本
(1)yum 包更新到最新

sudo yum update

(2)安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的

sudo yum install -y yum-utils device-mapper-persistent-data lvm2

(3)设置yum源为阿里云

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

(4)安装docker

sudo yum install docker-ce

(5)安装后查看docker版本

docker -v

设置ustc的镜像

ustc是老牌的linux镜像服务提供者了,还在遥远的ubuntu 5.04版本的时候就在用。ustc的docker镜像加速器速度很快。ustc docker mirror的优势之一就是不需要注册,是真正的公共服务。

vi /etc/docker/daemon.json  

在该文件中输入如下内容:

{
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
}

Docker的启动与停止

安装后查看docker版本

docker -v


启动docker:

systemctl start docker


停止docker:

systemctl stop docker


重启docker:

systemctl restart docker


查看docker状态:

systemctl status docker


开机启动:

systemctl enable docker


查看docker概要信息

docker info

常用命令

查看镜像

docker images

REPOSITORY:镜像名称
TAG:镜像标签
IMAGE ID:镜像ID
CREATED:镜像的创建日期(不是获取该镜像的日期)
SIZE:镜像大小
这些镜像都是存储在Docker宿主机的/var/lib/docker目录下

如果你需要从网络中查找需要的镜像,可以通过以下命令搜索

拉取镜像就是从中央仓库中下载镜像到本地
    docker pull 镜像名称
    docker pull centos:7
 删除镜像
 docker rmi 镜像ID
 删除所有镜像
 docker rmi `docker images -q`

查看正在运行的容器
    docker ps
查看所有容器
    docker ps –a
查看最后一次运行的容器
    docker ps –l
查看停止的容器
    docker ps -f status=exited
停止容器:
    docker stop 容器名称(或者容器ID)
启动容器:
    docker start 容器名称(或者容器ID)

创建与启动容器

容器启动:

容器交互式启动:

(1)交互式方式创建容器docker run -it --name=容器名称 镜像名称:标签 /bin/bash
Docker入门,附带 redis,tomcat,nginx,mysql的docker安装和springboot用Dockerfile打包启动_第1张图片

docker run -it --name=inter_centos centos:7 /bin/bash

exit

docker rm 容器名称(容器ID)

(2)守护式方式创建容器:
Docker入门,附带 redis,tomcat,nginx,mysql的docker安装和springboot用Dockerfile打包启动_第2张图片
docker run -di --name=容器名称 镜像名称:标签
docker run -di --name=guard_centos centos:7

登录守护式容器方式:

docker exec -it 容器名称 (或者容器ID)  /bin/bash
docker exec -it guard_centos /bin/bash

停止容器:

docker stop 容器名称(或者容器ID)
docker stop 82e98fbb5a34

启动容器:

docker start 容器名称(或者容器ID)
docker start 82e98fbb5a34

删除指定的容器:

docker rm 容器名称(容器ID)

如果我们需要将文件拷贝到容器内可以使用cp命令

docker cp 需要拷贝的文件或目录 容器名称:容器目录
docker cp /etc/docker guard_centos:/etc/docker

也可以将文件从容器内拷贝出来

docker cp 容器名称:容器目录 需要拷贝的文件或目录
docker cp guard_centos:/etc/docker/aa.json ~

目录挂载

我们可以在创建容器的时候,将宿主机的目录与容器内的目录进行映射,这样我们就可以通过修改宿主机某个目录的文件从而去影响容器。

创建容器 添加-v参数 后边为 宿主机目录:容器目录,例如:

docker run -di -v /usr/local/myhtml:/usr/local/myhtml --name=mycentos01 centos:7

如果你共享的是多级的目录,可能会出现权限不足的提示。

这是因为CentOS7中的安全模块selinux把权限禁掉了,我们需要添加参数 --privileged=true 来解决挂载的目录没有权限的问题

查看容器IP地址
我们可以通过以下命令查看容器运行的各种数据

docker inspect 容器名称(容器ID) 
docker inspect mycentos01

也可以直接执行下面的命令直接输出IP地址

docker inspect --format='{{.NetworkSettings.IPAddress}}' 容器名称(容器ID)
docker inspect --format ='{{.NetworkSettings.IPAddress}}' mycentos01
查看网络id
docker inspect --format ='{{.NetworkSettings.Networks.bridge.NetworkID}}' mycentos01

MySQL部署

(1)拉取mysql镜像

docker pull centos/mysql-57-centos7

(2)创建容器

docker run -di --name=docker_mysql -p 33306:3306 -e MYSQL_ROOT_PASSWORD=123456 centos/mysql-57-centos7

-p 代表端口映射,格式为 宿主机映射端口:容器运行端口

-e 代表添加环境变量 MYSQL_ROOT_PASSWORD 是root用户的登陆密码

(3)远程登录mysql

连接宿主机的IP ,指定端口为33306

tomcat部署

(1)拉取镜像

docker pull tomcat:7-jre7

(2)创建容器

创建容器 -p表示地址映射

docker run -di --name=mytomcat -p 9000:8080 
-v /usr/local/webapps:/usr/local/tomcat/webapps tomcat:7-jre7
将war文件拷贝到 宿主机的目录 /usr/local/webapps
http://192.168.25.129:9000/cas/index.jsp

Nginx部署

(1)拉取镜像

docker pull nginx

(2)创建Nginx容器
Docker入门,附带 redis,tomcat,nginx,mysql的docker安装和springboot用Dockerfile打包启动_第3张图片

docker run -di --name=mynginx -p 80:80 nginx
docker exec -it mynginx /bin/bash

cat /etc/nginx/nginx.conf
(查看到 include /etc/nginx/conf.d/*.conf; 查看到nginx的配置文件地址)
cd /etc/nginx/conf.d/

查看到nginx的default.conf 文件,查看静态文件存放地址

location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
    }
    将实现准备好静态文件 修改为 html
docker cp html mynginx:/usr/share/nginx

http://192.168.25.129:80/  (宿主机ip)

Redis部署

(1)拉取镜像

 docker pull redis

(2)创建容器

docker run -di --name=myredis -p 6379:6379 redis

redis-cli -h 192.168.184

迁移与备份

容器保存为镜像

我们可以通过以下命令将容器保存为镜像

docker commit mynginx mynginx_i

镜像备份

我们可以通过以下命令将镜像保存为tar 文件

docker  save -o mynginx.tar mynginx_i

镜像恢复与迁移

首先我们先删除掉mynginx_img镜像 然后执行此命令进行恢复

docker load -i mynginx.tar

-i 输入的文件

执行后再次查看镜像,可以看到镜像已经恢复

springboot用Dockerfile打包启动

1、首先在建一个target目录,将需要上传jar上传至target目录。创建Dockerfile文件,内容如下:
在这里插入图片描述

FROM openjdk:8-jdk-alpine
ADD database-project-0.0.1-SNAPSHOT.war app.jar
EXPOSE 8080
CMD ["java","-Djava.security.egd=file:/dev/./urandom","-jar","app.jar"]   —设置r容器的启动命令

2、cd到项目根目录下,也就是Dockerfile的平级目录下执行如下命令进行打包镜像:

 docker build -t test:v0.1  . 

3、直接在本地运行刚才打包好的镜像,创建一个容器并启动:
前台启动

docker run -p 8080:8080 --name test test:v0.1

后台启动

docker run -d -p 8080:8080 --name test test:v0.1

springboot停止
在这里插入图片描述

docker stop 01c35b8f7c86
docker rm 01c35b8f7c86

你可能感兴趣的:(docker)