Docker

安装以及部署springboot项目参照
http://www.ityouknow.com/springboot/2018/03/19/spring-boot-docker.html

安装docker

yum install docke

测试是否安装成功

docker version

安装JDK

yum -y install java-1.8.0-openjdk*

配置环境变量 打开 vim /etc/profile 添加一下内容

export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.161-0.b14.el7_4.x86_64 
export PATH=$PATH:$JAVA_HOME/bin 
修改完成之后,使其生效
source /etc/profile
输入java -version 返回版本信息则安装正常。

运行docker并设为开机启动

service docker start
chkconfig docker on
重启docker服务  
sudo service docker restart
关闭
docker service docker stop

如采用CentOS 7中支持的新式 systemd 语法,如下:

systemctl start docker.service     /启动docker
systemctl enable docker.service    	/开机自启
systemctl status docker		/查看 docker 状态
systemctl stop docker		/停止 docker

Docker 中国官方镜像加速可通过registry.docker-cn.com访问。该镜像库只包含流行的公有镜像,私有镜像仍需要从美国镜像库中拉取。
修改系统中docker对应的配置文件即可,如下:

vi  /etc/docker/daemon.json
#添加后
{
    "registry-mirrors": ["https://registry.docker-cn.com"],
    "live-restore": true
}

运行下面的命令,将 image 文件从仓库抓取到本地。

docker pull library/hello-world

搜索镜像

docker search  镜像名称(例如:docker search tomcat 可以看到仓库里的所有tomcat镜像)

查看镜像内已经安装容器

docker images  /查看镜像内已经安装容器
docker ps -a     / 查看所有的已创建的容器
docker ps         / 查看正在运行的容器
docker ps -f status=exited  /查看已经停止的容器

docker安装tomcat

docker pull tomcat

安装maven

wget http://mirror.bit.edu.cn/apache/maven/maven-3/3.6.1/binaries/apache-maven-3.6.1-bin.tar.gz

部署war包到tomcat

docker cp 'war包的路径' '容器的CONTAINER ID':/usr/local/tomcat/webapps

重启镜像

docker restart  容器的CONTAINER ID          --容器的CONTAINER ID通过docker ps获取

运行镜像
docker run 语法,将镜像运行到容器中

https://www.runoob.com/docker/docker-run-command.html

#8081 服务访问端口,8080 容器内部端口
docker run -p 8081:8080 docker.io/tomcat -d
交互模式创建容器
docker run -it --name=容器名称 镜像名称:标签 /bin/bash
守护方式创建容器
docker run -di --name=容器名称 镜像名称:标签

停止容器运行

docker stop <CONTAINER ID>

删除容器(删除前必须先停止)

docker rm <CONTAINER ID>

设置docker重启后容器也重启

docker run --restart=always

如果容器已经运行,使用

docker update --restart=always <CONTAINER ID>

进入容器内(登录守护式容器方式)

docker exec -it <CONTAINER ID>  /bin/bash

1,docker run 语法,将镜像运行到容器中

https://www.runoob.com/docker/docker-run-command.html
要部署多个tomcat需将容器端口号映射到宿主机的端口号  -p 宿主机port:8080

2,部署war包到tomcat

docker cp 需要拷贝的文件或目录  容器名称:容器目录
docker cp 'war包的路径' '容器的CONTAINER ID':/usr/local/tomcat/webapps
将文件从容器内拷贝出来
docker cp 容器名称:容器目录	需要拷贝的文件或目录

3,重启容器

docker restart  '容器的CONTAINER ID'

4,修改容器端口号

修改hostconfig来修改容器端口号
	vim /var/lib/docker/containers/[hash_of_the_container]/hostconfig.json
    hash_of_the_container为对应容器的hash值,通过docker ps可以获取CONTAINER ID为hash_of_the_container的前几位
    修改PortBindings中的hostport(端口号不能重复,否则重启后会恢复为原有端口)
    修改后重启容器

目录挂载(类似于映射)

在创建容器时,将宿主机的目录与容器内的目录进行映射,这样可以通过修改宿主机某个目录的文件从而去影响容器 
创建容器 添加 -v 参数 后边为 宿主机目录:容器目录,完整命令:
docker run  -v 宿主机目录:容器目录
ps:如果共享的是多级目录,可能会出现权限不足的情况 可以通过添加参数 --privileged=true 来解决,
因为 CentOS7 中安全模块将 selinux 权限禁掉了,添加此参数,可以将问题解决。

查看容器详细(各种环境以及ip等)

docker inspect 容器名称(容器ID)

常见应用部署

Mysql

  1. 拉取镜像
docker search mysql  /搜索仓库存在的mysql镜像
docker pull  mysql  /默认拉取官方镜像
docker pull centos/mysql-57-centos7  /也可指定拉取某个版本的mysql
  1. 创建容器
docker run -di --name=mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root (镜像名称)
其中:-p 代表端口映射,格式为 宿主机映射端口:容器运行端口 
	 -e 代表添加环境变量 MYSQL_ROOT_PASSWORD 是 root 用户的登录密码
  1. 进入容器
docker exec -it mysql /bin/bash
  1. 登录mysql
mysql -u root -p

tomcat部署

  1. 拉取镜像
docker pull tomcat /默认官方镜像,拉取别的版本可参考mysql
  1. 创建容器
docker run -di --name=mytomcat -p 9000:8080 -v /usr/local/webapps:/usr/local/webapps tomcat名称

Nginx部署

  1. 拉取镜像
docker pull nginx
  1. 创建容器
docker run -di --name=mynginx -p 80:80 nginx

Resid部署

  1. 拉取镜像
docker pull redis
  1. 创建容器
docker run -di --name=myredis -p 6379:6379 redis
  1. 进入容器
docker exec -it  [CONTAINER ID]  redis-cli

迁移与备份

将容器保存为镜像

docker commit 容器名称 镜像名称
例:docker commit Drp DrpService  /将名为Drp的容器保存为DrpService的镜像

将镜像保存为tar文件

docker save -o  hello-world.tar hello-world
ll  /查看已保存的tar文件

镜像恢复与迁移:-i 输入的文件

docker load -i hello-world.tar

Dockerfile

Dockerfile 是由一系列命令和参数构成的脚本,基于基础镜像,最终创建一个新的镜像,常用命令有:

FROM image_name:tag    /定义了使用哪儿个基础镜像启动构建流程
MAINTAINER user_name	/声明镜像的创建者
ENV key value		    /设置环境变量(可以写多条)
RUN command 		    /是 Dockerfile 的核心部分(可以写多条)
ADD source_dir/file dest_dir/file    /将宿主机的文件复制到容器内,如果是一个压缩文件,将会在复制后自动解压
COPY source_dir/file dest_dir/file   /和 ADD 相似,但是如果有压缩文件并不能解压
WORDIR path_dir                      /设置工作目录

如果要使用 Dockerfile 文件,名字必须为「Dockerfile」,否则里面的命令不会有效。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值