docker命令入门(集成redis,nginx,mysql,tomcat)

docker命令入门(集成redis,nginx,mysql,tomcat)

docker 是一个go语言开发的一个将应用和应用依赖包在一起的容器!

主要应用:

Web 应用的自动化打包和发布

自动化测试和持续集成、发布

在服务型环境中部署和调整数据库或其他的后台应用

1.docker的安装

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源

3.1、方案一:使用ustc的(推荐)
sudo yum-config-manager --add-repo http://mirrors.ustc.edu.cn/docker-ce/linux/centos/docker-ce.repo

3.2、方案二:使用阿里云(可能失败)

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

4、 安装docker;出现输入的界面都按 y

sudo yum install -y docker-ce

5、 查看docker版本

docker -v

2. 设置ustc镜像

1,编辑文件/etc/docker/daemon.json 没有即创建添加内容

{“registry-mirrors”: [“https://docker.mirrors.ustc.edu.cn”,“https://hub-mirror.c.163.com”]}

docker启动与停止命令

1 启动服务

systemctl start docker

2 停止服务

systemctl stop docker

3 重启服务

systemctl restart docker

4 查看服务状态

systemctl status docker

docker常用命令

查看镜像

docker images

REPOSITORY:镜像名称

TAG:镜像标签

IMAGE ID:镜像ID

CREATED:镜像的创建日期

搜索镜像

docker search [imageName] #如果不加版本号默认最新

拉取镜像

docker pull [imageName]#如果不加版本号默认最新

删除镜像

docker rmi [imageName]

容器相关命令

参数说明

-i:表示运行容器

-t:表示容器启动后会进入其命令行。加入这两个参数后,容器创建就能登录进去。即分配一个伪终端。

–name :为创建的容器命名。

-v:表示目录映射关系(前者是宿主机目录,后者是映射到宿主机上的目录),可以使用多个

-v做多个目录或文件 映射。注意:最好做目录映射,在宿主机上做修改,然后共享到容器上。

-d:在run后面加上-d参数,则会创建一个守护式容器在后台运行(这样创建容器后不会自动登录容器如果只加-i -t 两个参数,创建后就会自动进去容器)。

-p:表示端口映射,前者是宿主机端口,后者是容器内的映射端口。可以使用多个-p做多个端口映射

查看容器

docker ps #查看运行中的容器

docker ps -a #查看所有的容器

创建容器

以交互式启动容器

启动前必须有镜像,如果没有,先pull下载镜像

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

–name=mycentos 更改名字,默认是镜像名称,名称唯一

启动守护容器

docker run -di --name=mycentos centos:7

#登录容器

docker exec -it [containerId Or containerName] /bin/bash

启动容器

docker start [containerName]

停止容器

docker stop[containerName]

文件拷贝

主机 cp到容器

docker cp file [containerName]

容器cp到主机

docker cp [containerName]:/filename filename

目录挂载

注:只能在创建容器的时候挂载,创建后无法修改,挂载目录必须为空,挂载目录本机和容器必须相同

docker run -di -v /usr/local/test:/usr/local/test --name=mycontainerName centos:7

之后该文件夹就会主机和容器实时更新内容

查看容器ip地址

docker inspect containerName

删除容器

docker rm [containerName]

Docker应用部署

MySQL部署

1 拉取镜像

docker pull centos/mysql-57-centos7

2 创建容器并且映射端口 定义环境变量 指定外部链接密钥

docker run -di -p 3306:3306 --name=mysql5 -e MYSQL_ROOT_PASSWORD=root centos/mysql-57-centos7

3 使用容器mysql

docker exec -it /bin/bash

容器内的mysql默认密码为空

mysql -u root -p

Tomcat部署

创建容器,需要映射端口和挂载目录,目的是为了方便发布应用

docker run -di -p 9000:8080 --name=mytomcat -v /usr/local/tomcat/webapps:/usr/local/tomcat/webapps tomcat

如果出现 WARNING: IPv4 forwarding is disabled. Networking will not work.

#执行如下操作

1 编辑sysctl.conf

vi /etc/sysctl.conf

2 在文件最后追加

net.ipv4.ip_forward=1

3 重启network

systemctl restart network

Nginx部署

拉取镜像

docker pull nginx

创建容器 映射端口80

docker run -di --name=mynginx -p 80:80 nginx

Redis部署

拉取镜像

docker pull redis

创建容器,redis需要开放端口连接

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

#进入redis容器

docker exec -it myredis /bin/bash

#进入redis安装目录 启动redis

cd /usr/local/bin

./redis-cli

Docker Compose

安装

curl -L “https://github.com/docker/compose/releases/download/1.24.0/docker-compose- ( u n a m e − s ) − (uname -s)- (unames)(uname -m)” -o /usr/local/bin/docker-compose

授予权限

chmod +x /usr/local/bin/docker-compose

查看版本

docker-compose -version

卸载

rm /usr/local/bin/docker-compose

-f,–file FILE指定使用的Compose模板文件,默认为docker-compose.yml,可以多次指定。
-p,–project-name NAME指定项目名称,默认将使用所在目录名称作为项目名。
-x-network-driver 使用Docker的可拔插网络后端特性(需要Docker 1.9 及以后版本)
-x-network-driver DRIVER指定网络后端的驱动,默认为bridge(需要Docker 1.9 及以后版本)
-verbose输出更多调试信息
-v,–version打印版本并退出

模板文件是使用Compose的核心,涉及的指令关键字也比较多,大部分指令与 docker run 相关参数的含义都是类

似的。默认的模板文件名称为docker-compose.yml,格式为YAML格式。 比如一个Compose模板文件:

version: ‘3’
services:
redis1:
image: redis
ports:

​ -“6379:6379”
ntainer_name: “redis1”

#启动前最好把docker重启,不然原来的tomcat/mysql/redis容器也是启动状态的话,那么端口会冲突而启动失败
systemctl restart docker
cd /usr/local/mycompose docker-compose up

如果后台启动则使用如下命令

docker-compose up -d

若要停止

docker-compose stop

迁移与备份

保存nginx容器为镜像

docker commit mynginx mynginx

保存镜像为文件

docker save -o mynginx.tar mynginx

6.3. 镜像恢复与迁移

停止mynginx容器

docker stop mynginx

删除mynginx容器

docker rm mynginx

删除mynginx镜像

docker rmi mynginx

加载恢复mynginx镜像

docker load -i mynginx.tar

在镜像恢复之后,基于该镜像再次创建启动容器

docker run -di --name=mynginx -p 80:80 mynginx

使用Dockerfifile创建镜像

# 1、创建目录

mkdir –p /usr/local/dockerjdk8

cd /usr/local/dockerjdk8

# 2、下载jdk-8u202-linux-x64.tar.

gz并上传到服务器(虚拟机)中的/usr/local/dockerjdk8目录

# 3、在/usr/local/dockerjdk8目录下创建Dockerfile文件,文件内容如下:

vi Dockerfile

FROM centos:7

MAINTAINER BYNAME

WORKDIR /usr

RUN mkdir /usr/local/java

ADD jdk-8u202-linux-x64.tar.

gz /usr/local/java/

ENV JAVA_HOME /usr/local/java/jdk1.8.0_202

ENV JRE_HOME $JAVA_HOME/jre

ENV CLASSPATH $JAVA_HOME/lib/dt.

jar:$JAVA_HOME/lib/tools.

jar: J R E H O M E / l i b : JRE_HOME/lib: JREHOME/lib:CLASSPATH

ENV PATH J A V A H O M E / b i n : JAVA_HOME/bin: JAVAHOME/bin:PATH

# 4、执行命令构建镜像;不要忘了后面的那个 .

docker build -t=‘jdk1.8’ .

# 5、查看镜像是否建立完成

docker images

Docker私有仓库

1、拉取私有仓库镜像

docker pull registry

2、启动私有仓库容器

docker run -di --name=registry -p 5000:5000 registry

3、打开浏览器 输入地址http://宿主机ip:5000/v2/_catalog,看到{“repositories”:[]} 表示私有仓库 搭建成功

4、修改daemon.json vi /etc/docker/daemon.json # 在上述文件中添加一个key,保存退出。

此步用于让 docker 信任私有仓库地址;注意将宿主机ip修改为自己宿主 机真实ip

注:在追加key的时候如果没有用","分割将无法启动docker

{“insecure-registries”:[“宿主机ip:5000”]}

5、重启docker 服务

systemctl restart docker docker start registry

将镜像上传至私有仓库

1.标记镜像为私有仓库的镜像

docker tag jdk1.8 宿主机IP:5000/jdk1.8

2.再次启动仓库容器

docker restart registry

3.上传标记镜像

docker push 宿主机IP:5000/jdk1.8

4.输入网址查看仓库是否上传成功

宿主机IP:5000/v2/_catalog

其它服务器拉取私有仓库镜像(重要)

打开配置

vi /usr/lib/systemd/system/docker.service

# 在打开的上述文件中按照下面的图,添加如下的内容;注意修改下面内容中的ip地址

–add-registry=192.168.12.135:5000 --insecure-registry=192.168.12.135:5000 \

systemctl daemon-reload

systemctl restart docker

私有仓库拉取镜像和共有的一样

你可能感兴趣的:(环境搭建)