结:docker是一种容器技术,解决软件跨环境迁移的问题
#1.yum包更新到最新
yum update
#2.安装需要的软件包
yum install -y yum-utils device-mapper-persistent-data lvm2
#3.设置yum源
yum-config-manager --add-repo https://download.docker .com/linux/centos/docker-ce.repo
#4.安装docker
yum install -y docker-ce
#5.查看版本
docker -version
报错时:
可在/etc/docker下配置阿里云的镜像加速器
vim daemon.json
{
"registry-mirrors":["https://alzgoonw.mirror.aliyuncs.com"]
}
启动docker服务
停止
重启
查看状态
开机自启动
systemctl start docker
systemctl stop docker
systemctl restart docker
systemctl status docker
systemctl enable docker
查看本地镜像
docker images
docker images -q #镜像ID
搜索Docker Hub中镜像
docker search redis
从仓库拉取镜像至本地
docker pull redis #(默认最新版本latest)
docker pull redis:5.0 #镜像版本从hub.docker.com上查看
删除本地镜像
docker rmi {ID}
docker rmi `docker images -q` #全部删除
查看容器
docker ps #查看运行中的容器
docker ps -a # 查看所有容器
docker ps -aq # 查看所有容器ID
创建容器
docker run -it --name=c1 centos:7 /bin/bash #-it交互式启动容器后,分配一个伪终端进入容器,exit命令退出关闭容器 /bin/bash容器启动后执行
docker run -id --name=c1 centos:7 #-id守护式启动容器,后台运行,使用docker exec进入容器,exit退出后不会关闭容器
进入容器
docker exec -it c2 /bin/bash
启动容器
docker start c2
停止容器
docker stop c2
删除容器,需要停止容器
docker rm c2
docker rm `docker ps -aq`
查看容器信息
docker inspect
思考:
数据卷概念:
数据卷作用:
docker run -it --name=c2 -v /root/data2:/root/data_container2 -v /root/data3:/root/data_container3 centos:7 #-v 参数 宿主机目录:容器目录,目录不存在,自动创建 #数据持久化
#1.创建启动c3数据卷容器,使用-v参数设置数据卷
docker run -it --name=c3 /volume centos:7
#2.创建启动c1、c2容器,使用--volumes-from参数设置数据卷
docker run -it --name=c1 --volumes-from c3 centos:7
docker run -it --name=c2 --volumes-from c3 centos:7
和多容器挂载同一个宿主机目录:
多容器挂载:如果容器多的话,操作麻烦,数据保存、持久化、回复比较麻烦
搜索mysql镜像
docker search mysql
拉取mysql镜像
docker pull mysql:5.6
创建容器
#宿主机/root/mysql下
docker run -id \
-p 3307:3306 \ #端口映射,使外部机器连上容器c_mysql
--name=c_mysql \
-v /root/mysql/conf:/etc/mysql/comf.d \ #目录映射,数据卷
-v /root/mysql/logs:/logs \
-v /root/mysql/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
mysql:5.6
搜索tomcat镜像
docker search tomcat
拉取tomcat镜像
docker pull tomcat
创建容器
mkdir /root/tomcat
cd /root/tomcat
docker run -id --name=c_tomcat \
-p 8080:8080 \
-v $PWD:/usr/local/tomcat/webapps \ #$PWD宿主机的当前目录
tomcat
使用外部机器访问tomcat
在宿主机/root/tomcat下
[root@localhost tomcat]# mkdir test
[root@localhost tomcat]# cd test/
[root@localhost test]# vim index.html
#访问路径
http://192.168.202.23:8080/test/index.html
搜索tomcat镜像
docker search nginx
拉取tomcat镜像
docker pull nginx:1.18
创建容器
mkdir /root/nginx
cd /root/nginx
docker run -id --name=c_nginx \
-p 80:80 \
-v $PWD/conf/nginx.conf:/etc/nginx/nginx.conf \
-v $PWD/logs:/var/log/nginx \
-v $PWD/html:/usr/share/nginx/html \
nginx:1.18
使用外部机器访问tomcat
创建容器c_redis
docker run -id --name=c_redis -p 6379:6379 redis:5.0
windows上连接
容器转镜像
Dockerfile
案例1
自定义centos7镜像,要求:
步骤
docker build \
-f ./centos_dockerfile \ #dockerfile文件目录
-t yehuda_centos:1 . #新镜像命名:版本号
案例2
复制jar包springboot2-0.0.1-SNAPSHOT.jar
编写dockerfile文件
FROM java:8
MAINTAINER yehuda <12933787@qq.com>
ADD springboot2-0.0.1-SNAPSHOT.jar app.jar
CMD java -jar app.jar
使用dockerfile文件创建镜像
docker build -f ./java_springboot_dockerfile -t javaapp_jar:5.7 .
使用镜像创建容器
docker run -id -p 9000:8058 javaapp_jar:5.7 #省略--name 系统自命名
Compose 是用于定义和运行多容器 Docker 应用程序的工具。通过 Compose,您可以使用 YML 文件来配置应用程序需要的所有服务。然后,使用一个命令,就可以从 YML 文件配置中创建并启动所有服务。
Compose 使用的三个步骤:
一、安装docker-compose
#安装,以编译好的二进制包方式安装在Linux系统中
curl -L https://github.com/docker/compose/releases/download/1.22.0/docker-compose-`uname -s `-` uname -m` -o /usr/local/bin/docker-compose
#设置权限
chmod +x /usr/local/bin/docker-compose
#查看版本信息
docker-compose -version
二、卸载
#二进制包方式安装的,删除二进制文件即可
rm /usr/local/bin/docker-compose
三、使用docker-compose编排nginx+springboot项目
1.创建docker-compose目录
mkdir ~/docker-compose
cd ~/docker-compose
2.编写docker-compose.yml文件
version: `3`
services:
nginx:
image: nginx
ports:
- 80:80
links:
- app
volumes:
- ./nginx/conf.d:/etc/nginx/conf.d
app:
image: app
expose:
- "8080"
3.创建./nginx/conf.d目录
mkdir -p ./nginx/conf.d
4.在./nginx/conf.d目录下编写yh.conf文件
server {
listen 80;
access_log off;
location / {
proxy_pass http://app:8058;
}
}
5.在~/docker-compose目录下使用docker-compose启动容器
docker-compose up
6.测试访问
http://192.168.202.23/hello
#1.拉取私有仓库镜像
docker pull registry
#2.启动私有仓库容器
docker run -id --name=registry -p 5000:5000 registry
#3.打开游览器 输入地址http://私有仓库服务器ip:5000/v2/_catalog,看到{"repositories":[]}表示私有仓库 描建成功
#4.信任私有仓库,修改daemon.json文件
vim /etc/docker/daemon.json
{
"registry-mirrors": ["https://alzgoonw.mirror.aliyuncs.com"],
"insecure-registries": ["192.168.202.23:5000"]
}
#5.重启docker
systemctl restart docker
docker start registry
#1.标记镜像为私有仓库的镜像
docker tag centos:7 192.168.202.23:5000/centos:7
#2.上传标记的镜像
docker push 192.168.202.23:5000/centos:7
#1.拉取镜像
docker pull 192.168.202.23:5000/centos:7