Docker-ce(社区版)命令/部署/私有库/备份迁移

版本描述
Docker-ce社区版,免费
Docker-ee企业版,收费


一、Docker安装

1. 安装命令

#yum更新到最新
sudo yum update
#安装yum-util提供的yum-config-mapper依赖
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
#设置docker的yum源为阿里云
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
#安装docker-ce
sudo yum install docker-ce
#查看docker -v 版本
docker -v

#设置docker开机自动启动
systemctl enable docker
#更改镜像,提升下载速度
vim daemon.json 
#加入
{
        "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
}
#重启服务 
systemctl restart docker


二、docker 命令

操作命令
查看状态systemctl status docker
启动systemctl state docker
停止systemctl stop docker
重启systemctl restart docker

1. 镜像相关命令

操作命令描述
查看镜像docker images
搜索镜像docker search 镜像名称NAME:镜像名称
DESCRIPTION:镜像描述
STARS:好评度
OFFICIAL:是否是官方提供的
AUTOMATED:是否自动构建
拉取镜像docker pull 镜像名称例:docker pull mysql:5.7 冒号后面可以加上标签号
例:docker pull mysql 不加默认拉取最新的版本
删除镜像docker rmi 镜像id删除所有镜像 docker rmi `docker images -q``(去掉最后一个符号)
删除镜像时有运行的容器的话需要先删除容器再删除镜像

2. 容器相关命令

操作命令描述
查看容器docker ps查看容器 ps
查看所有容器 ps -a
操作容器docker 命令 容器名启动 start
停止 stop
重启 restart
创建容器命令docker run一个-代表不用填参数,两个-表示必须要参数
-i 运行容器
-t 启动后进入容器客户端
--name 为容器命名 --name=sql5.7
-v 映射目录 $1宿主机目录:容器目录
-d 后台运行
-p 端口映射 $1宿主机端口 $2容器端口
进入容器docker exec例:docker exec -it mycentos /bin/bash
exit退出容器
退出容器exit例:#docker exec -it mycentos /bin/bash
#exit退出容器
文件拷贝docker cp拷入例:doker cp /opt/xxx.txt mycentos:/usr/local
$1宿主机文件 $2镜像名:目录
拷出例:doker cp mycentos:/usr/local /opt/xxx.txt
与拷入反着写即可 $1镜像名:目录 $2宿主机目录
查看容器参数docker inspect 容器名直接使用命令返回的JSON格式数据
格式化提取需要参数: docker inspect mycentos2 --format='{{.NetworkSettings.IPAddress}}'
删除容器docker rm 容器名必须先停掉才能移除

3. 命令实操

拥有镜像

3.1 交互式方式创建容器

创建后直接进入容器中, 使用exit命令退出后容器停止

#1.创建一个 centos7的容器 并直接进入到容器中
docker run -it --name=mycentos7 centos:7 /bin/bash

查看启动状态

#2.退出这个容器
exit

退出这个容器

3.2 守护式方式创建容器

创建后为后台方式运行,使用docker exec 进入到容器,exit退出容器后容器不会退出运行

创建容器:docker run -di --name=mycentos2 centos:7

查看容器
进入这个容器:docker exec -it mycentos2 /bin/bash


三、docker应用部署

1. mysql部署

#1.拉取镜像
docker pull centos/mysql-57-centos7
#2.创建容器
docker run -d -i --name=demoMysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=xiaoli centos/mysql-57-centos7
#3.查看状态
docker ps

测试连接

Docker Mysql:8版本部署

 docker pull mysql
 docker run --name dockermysql  -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql
##进入容器
docker exec -it dockermysql bash
##登录
mysql -u root -p
##配置远程登录
use mysql;
grant all privileges on *.* to 'root'@'%';
select Host,User,plugin from user;
##修改Root登录验证
alter user 'root'@'%' identified with mysql_native_password by '123456';

2. tomcat部署

#1.拉取镜像
docker pull tomcat:7
#2.创建容器
docker run -di --name=demoTomcat -p 8080:8080 -v /usr/local/webapps:/usr/local/tomcat/webapps tomcat:7
#3.访问测试
http://192.168.200.200:9000/
#4.由于使用了 -v目录挂载 所以访问时出现404,这时需要在宿主机/usr/local/webapps/中添加应用

在这里插入图片描述

3. Nginx部署

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

启动成功
容器部署成功了,如何将我们的页面部署到Nginx呢?

#3.进入容器中设置Nginx
docker exec -it demoNginx /bin/bash
#4 容器中:
dir  			#查看当前目录
cd etc/nginx/  	#进入Nginx目录
cat nginx.conf	#查看Nginx的配置文件 可以看到 include /etc/nginx/conf.d/*.conf;
cat /etc/nginx/conf.d/default.conf  #查看conf.d下的配置文件 可以看到 root   /usr/share/nginx/html; 这条配置.
exit
#4 退出容器,将我们的静态页面cp到 /usr/share/nginx/html/目录即可
#在宿主机创建一个目录,并将静态页面放入次目录下
mkdir -p /usr/share/nginx/html/
#将目录CP到容器中
docker cp html  demoNginx:/usr/share/nginx/

完成


四、迁移与备份

1. 容器保存为镜像

docker commit demoNginx nginx_20190414
运行这个新保存的镜像:
docker run -di --name=demoNginx2 -p 81:80 nginx_20190414

2. 镜像备份

docker save -o nginx_20190414.tar nginx_20190414

3.镜像恢复与迁移

1.恢复之前先删除镜像跟容器
docker stop demoNginx2
docker rm demoNginx2
docker rmi nginx_20190414
2.恢复:
docker load -i nginx_20190414.tar


五、Dockerfile

介绍:由一系列的命令和参数构成的脚本,基于基础镜像创建一个新的镜像.

1. 常用命令

命令作用
FROM 基础镜像:标签定义基础镜像的名称和标签
MAINTAINER 名称版权申明,申明镜像的创建者, 可以不写
ENV key value设置环境变量 (可以写多条)
RUN 命令在运行时执行某一个命令,比如创建一个目录 (可以写多条)
ADD 源目录/文件 目标目录/文件将宿主机的文件复制到容器内,如果是压缩文件自动解压
COPY 源目录/文件 目标目录/文件将宿主机的文件复制到容器内
WORKDIR 目录设置容器工作目录,在登陆容器后默认进入此目录

2. 使用dockerfile构建一个镜像

使用基础镜像为 centos7 以构建JDK1.8为例

#1.宿主机创建目录并放入JDK1.8
mkdir -p /usr/local/docker-jdk8
cd /usr/local/docker-jdk8
# 2. 构建一个Dockerfile文件 必须叫这个名字
mkdir Dockerfile
# 3. 构建  -t=构建后名称 .代表当前目录
docker build -t='jdk1.8' .
# 4.查看镜像  会发现多了一个 jdk1.8的镜像
docker images

在这里插入图片描述


六、创建Docker私有仓库

用于存放企业内部应用级的镜像

1. 创建私有仓库服务

#1.拉取镜像
docker pull registry
# 2.启动私有仓库
docker run  -di --name=registry -p 5000:5000 registry
# 3. 查看是否搭建成功
访问 http://192.168.200.200:5000/v2/_catalog 有返回证明成功
# 4.修改daemon.json配置文件 添加信任仓库地址
vim /etc/docker/daemon.json
        "insecure-registries":["http://192.168.200.200:5000"]
#重启docker服务
systemctl restart docker

2. 上传镜像到私有仓库

1.给需要上传的镜像打一个标签 标签名为 私服IP:端口:镜像名
docker tag jdk1.8 192.168.200.200:5000/jdk1.8
2.上传到私有服务器
docker push 192.168.200.200:5000/jdk1.8
3.访问仓库是否已经存在列表中 http://地址:端口/v2/_catalog
4.从私库下载 docker pull 192.168.200.200:5000/jdk1.8

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值