Docker 安装与启动
(1)yum 包更新到最新
sudo yum update
(2)安装需要的软件包,yum-util 提供 yum-confifig-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
设置阿里的镜像
编辑该文件:
vi /etc/docker/daemon.json
在该文件中输入如下内容(二选一):
{
"registry-mirrors": ["https://9cpn8tt6.mirror.aliyuncs.com"]
}
{
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
}
Docker 启动与停止
systemctl 命令是系统服务管理器指令
启动 docker:
systemctl start docker
停止 docker:
systemctl stop docker
重启 docker:
systemctl restart docker
查看 docker 状态:
systemctl status docker
开机启动:
systemctl enable docker
查看 docker 概要信息
docker info
查看 docker 帮助文档
docker info
Docker 常用命令
镜像相关命令
查看镜像
docker images
搜素镜像
如果你需要从网络中查找需要的镜像,可以通过以下命令搜索
docker search 镜像名称
拉取镜像
拉取镜像就是从中央仓库中下载镜像到本地
docker pull 镜像名称
例如,我要下载 centos7 镜像
docker pull centos:7
删除镜像
按镜像 ID 删除镜像或者安装镜像名称删除镜像
docker rmi 镜像ID
docker rmi 镜像名称
容器相关命令
查看容器
查看正在运行的容器
docker ps
查看所有容器
docker ps -a
查看最后一次运行的容器
docker ps -l
创建与启动容器
(1)交互式方式创建容器
交互式容器创建好后会进入容器,
docker run -it --name=容器名称 镜像名称:标签 /bin/bash
docker run -it --name=mycentos01 centos:7 /bin/bash
这时我们通过 ps 命令查看,发现可以看到启动的容器,状态为启动状态退出当前容器
exit
(2)守护式方式创建容器:
docker run -id --name=容器名称 镜像名称:标签
docker run -id --name=mycentos02 centos:7
(3)登录守护式容器方式:
docker exec -it 容器名称 (或者容器 ID) /bin/bash
docker exec -it mycentos02 /bin/bash
停止与启动容器
停止容器:
docker stop 容器名称(或者容器 ID)
docker stop mycentos02
启动容器:
docker start 容器名称(或者容器 ID)
docker stop mycentos02
文件拷贝
如果我们需要将文件拷贝到容器内可以使用 cp 命令 docker cp需要拷贝的文件或目录 容器名称:容器目录
docker cp 需要拷贝的文件或目录 容器名称:容器目录
docker cp /root/docker.txt mycentos02:/root/docker.txt
也可以将文件从容器内拷贝出来
docker cp 容器名称:容器目录 需要拷贝的文件或目录
docker cp mycentos02:/root/docker.txt /root/test.txt
目录挂载
docker run -id -v 宿主机目录:容器目录 --name=容器名称 镜像名称:镜像标签名
docker run -id -v /usr/local/myhtml:/usr/local/myhtml --name=mycentos3 centos:7
删除容器
删除指定的容器:
docker rm 容器名称(容器 ID)
docker stop mycentos01
docker rm mycentos01
应用部署
MySQL 部署
(1)拉取 mysql 镜像
docker pull centos/mysql-57-centos7
(2)创建容器
docker run -id --name=mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql
#进入容器内部
docker exec -it XXX /bin/bash
#访问mysql,并输入密码
mysql -u root -p
#更换密码的验证方式,然后进行刷新
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
flush privileges;
#退出容器
先按,Ctrl+P; 再按,Ctrl+Q
Tomcat 部署
(1)拉取镜像
docker pull tomcat:7-jre7
(2)创建容器
docker run -id --name=mytomcat -p:8080:8080 tomcat:7-jre7
部署Tomcat(挂载webapps目录)
1.登录tomcat容器
docker exec -it mytomcat /bin/bash
2.停止mytomcat容器
docker stop mytomcat
3.删除mytomcat容器
docker rm mytomcat
4.创建mytomcat容器并且配置挂载目录
docker run -id --name=mytomcat -p 8080:8080 -v /root/tomcatDir:/usr/local/tomcat/webapps
tomcat:7-jre7
Nginx 部署
(1)拉取镜像
docker pull nginx
(2)创建 Nginx 容器
docker run -id --name=mynginx -p 80:80 nginx
Nginx目录挂载
停止nginx容器
docker stop mynginx
删除mynginx容器
docker rm mynginx
创建Nginx容器并且实现目录挂载
将KTC静态资源考入到宿主机中
docker run -id --name=mynginx -p 90:80 -v /root/page:/usr/share/nginx/html nginx:latest
Redis 部署
(1)拉取镜像
docker pull redis
(2)创建容器
docker run -id --name=myredis -p 6379:6379 redis
迁移与备份
容器提交为镜像
我们可以通过以下命令将容器提交为镜像
docker commit 容器名称 镜像名称
docker commit mysql mysql_i
镜像备份
我们可以通过以下命令将镜像保存为 tar 文件(保存为压缩包时间会有点长)
默认打包地址就在当前目录
docker save -o 要打包成压缩包的名称 要打包的镜像名称
docker save -o mysql.tar mysql_i
镜像恢复与迁移
首先我们先删除掉 mysql_i 镜像 然后执行此命令进行恢复
docker load -i mysql.tar
-i 输入的文件
执行后再次查看镜像,可以看到镜像已经恢复
Dockerfifile
常用命令
命令 作用
from image_name:tag 定义了使用哪个基础镜像启动构建流程
maintainer user_name 声明镜像的创建者
env key value 设置环境变量 (可以写多条)
run command 是Dockerfifile 的核心部分(可以写多条)
add source_dir/fifile 将宿主机的文件复制到容器内,如果是一个
dest_dir/fifile 压缩文件,将会在复制后自动解压
copy 和 ADD 相似,但是如果有压缩文件并不能解压
source_dir/fifiledest_dir/fifile
workdir path_dir 设置工作目录
使用脚本创建镜像
步骤:
(1)下载 jdk-8u171-linux-x64.tar.gz 并上传到服务器(虚拟机)
(2)创建文件 vi Dockerfifile
#依赖镜像名称和 ID
FROM centos:7
#指定镜像创建者信息
MAINTAINER dfbz
RUN mkdir /usr/local/jdk
#ADD 是相对路径 jar,把 java 添加到容器中
ADD jdk-8u171-linux-x64.tar.gz /usr/local/jdk/
#配置 java 环境变量
ENV JAVA_HOME /usr/local/jdk/jdk1.8.0_171
ENV JRE_HOME $JAVA_HOME/jre
ENV PATH $JAVA_HOME/bin:$PATH
#切换工作目录
WORKDIR /usr
(4)执行命令构建镜像
docker build -t='jdk1.8' .
(5)查看镜像是否建立完成
docker images
Docker 私有仓库
私有仓库搭建与配置
(1)拉取私有仓库镜像
docker pull registry
(2)启动私有仓库容器
docker run -id --name=registry -p 5000:5000 registry
(3)打 开 浏 览 器 输 入 地 址 http://192.168.222.128:5000/v2/_catalog 看到 {“repositories”:[]} 表示私有仓库搭建成功并且内容为空
(4)修改 daemon.json (/etc/docker/daemon.json)
添加以下内容,保存退出。
{"insecure-registries":["192.168.222.128:5000"]}
此步用于让 docker 信任私有仓库地址
(5)重启 docker 服务
systemctl restart docker
镜像上传至私有仓库
(1)标记此镜像为私有仓库的镜像
docker tag 镜像名称 私服地址:端口/要打包的标签名(随意)
docker tag jdk1.8 192.168.222.128:5000/myjdk1.8
(2)上传标记的镜像
docker push 私服地址:端口/打包的标签名
docker push 192.168.222.128:5000/myjdk1.8
(3)删除myjdk1.8镜像
docker rmi 192.168.222.128:5000/myjdk1.8
(4)从私服上拉取myjdk1.8镜像
docker pull 192.168.222.128:5000/myjdk1.8