Docker入门实践

Docker入门实践

前提: 虚拟机1 CentOS7:192.168.0.19(与物理机桥接方式)

虚拟机2 CentOS7:192.168.0.21(与物理机桥接方式)

本机:192.168.0.5 1. Docker安装与启动

1. 准备工作

1.1 安装Docker

​ (1)yum包更新到最新

(2)安装需要的软件包,yum-util提供yum-config-manager功能,另外两个是devicemapper屈都依赖的

 sudo yum install -y  yum-utils devicemapper-persistent-data lvm2

​ (3) 设置yum源为阿里云

sudo yum-coonfig-manager --add-repo

[]: http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

​ (4) 安装docker

sudo yum install docker-ce

​ (5) 查看版本

docker -v

1.2 设置ustc的镜像

​ (1) 编辑该文件

​ vi /etc/docker/daemon.json

​ (2) 该文件中输入如下内容:

 {

​        “registry-mirrors”:["https://docker.mirrors.ustc.edu.cn"]

​        }

1.3 Docker的启动与停止

systemctl 命令是系统服务管理器指令

​ 启动docker

​ systemctl start docker

​ 停止docker

​ systemctl stop docker

​ 重启docker

​ systemctl restart docker

​ 查看docker状态

​ systemctl status docker

​ 开机启动

​ systemctl enable docker

​ 查看docker概要信息

​ docker info

2. 常用命令

2.1 镜像相关命令

2.1.1 查看镜像

​ docker images

img

2.1.2 搜索镜像

​ docker search 镜像名称

img

2.1.3 拉取镜像

​ docker pull 镜像名称

​ 例如 docker pull centos:7

2.1.4 删除镜像

​ docker rmi 镜像ID

​ 删除所有镜像:docker rmi ‘docker images -q’

2.2 容器相关命令

2.2.1 查看容器

​ 查看正在运行容器: docker ps

​ 查看所有容器: docker ps -a

​ 查看最后一次运行容器: docker ps -1

​ 查看停止容器: docker ps -f status=exited

2.2.2 创建与启动容器

​ 创建容器命令:docker run

img

​ (1) 交互式方式创建容器

​ docker run -it --name=容器名称 镜像名称:标签 /bin/bas

img

​ 此时,创建完毕后直接进入。

​ 进入容器后exit退出,容器状态自动变为exited.

​ (2) 守护式方式创建容器

​ docker run -di --name=容器名称 镜像名称:标签

img

​ 此时,创建完毕后未进入容器

​ 登陆守护方式容器:docker exec -it 容器名称(或者ID) /bin/bash

​ 注意:本次创建容器时,即使上面交互式方式创建的容器mycentos已经关闭,此时仍然不能本次容器也为mycentos!!!

2.2.3 停止与启动容器

​ 停止容器:docker stop 容器名称(或者ID)

​ 启动容器:docker start 容器名称(或者ID)

2.2.4 文件拷贝

将文件拷贝到容器内:docker cp 需要拷贝文件或目录 容器名称:容器目录

img

将文件拷贝出容器外:docker cp 容器名称:容器目录 需要拷贝文件或目录

2.2.5 目录挂载

img

2.2.6 查看容器IP地址

​ docker inspect 容器名称(或者ID)

直接查找到IP地址方式:

img

2.2.7 删除容器

​ docker rm 容器名称(或者ID)

注意:1. 与删除镜像区别(删除镜像:docker rmi 镜像ID)

2. 在删除镜像时,要把对应全部创建的容器删除才可以删除镜像!

3. 应用部署

3.1 MySQL部署

​ (1) 拉取mysql镜像

​ docker pull centos/mysql-57-centos7

​ (2) 创建容器

​ docker run -di --name=tensquare_mysql -p 33306:3306 -e MYSQL_PASSWORD=123456 mysql

​ -p 代表端口映射,格式为 宿主机映射端口:容器运行端口

​ -e 代表添加环境变量 MYSQL_ROOT_PASSWORD 是root用户的密码

​ (3) 进入mysql容器

​ docker exec -it tensquare_mysql /bin/bash

​ (4) 登陆mysql

​ mysql -u root -p

​ (5) 远程登陆mysql

​ 连接宿主机IP并指定端口为33306,这样就可以操作容器的3306端口。

3.2 tomcat部署

​ (1) 拉取镜像

​ docker pull tomcat:7-jre7

​ (2) 创建容器

​ 创建容器 -p 表示地址映射

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

​ (3) 进入mysql容器

​ docker exec -it mytomcat /bin/bash

​ (4) 远程访问:192.168.0.19:9000/index.jsp

3.3 Nginx部署

​ (1) 拉取镜像

​ docker pull nginx

​ (2) 创建容器

​ 创建容器 -p 表示地址映射

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

3.4 Redis部署

​ (1) 拉取镜像

​ docker pull redis

​ (2) 创建容器

​ 创建容器 -p 表示地址映射

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

4. 迁移与备份

4.1 容器保存为镜像

​ docker commit mynginx mynginx_i

4.2 镜像备份

​ docker save -o mynginx.tar mynginx_i

4.3 镜像恢复与迁移

​ docker load -i mynginx.tar

​ -i 输入的文件

​ docker images 可看到镜像已恢复

5. Dockerfile

5.1 什么是Dockerfile

img

5.2 常用命令

img

5.3 使用脚本创建镜像

​ (1)创建目录

​ mkdir -p /usr/local/dockerjdk8

​ (2)下载jdk-8u171-linux-x64.tar.gz并上传到服务器中/usr/local/dockerjdk8目录

​ (3)在dockerjdk8目录下创建文件Dockerfile vi Dockerfile

​ #依赖镜像名称和ID

​ FROM centos7

​ #指定镜像创建者

​ MAINTAINER FENCO

​ #切换工作目录

​ WORKDIR /usr

​ RUN mkdir /usr/local/java

​ #ADD 是相对路径jar,把java添加到容器

​ ADD jdk-8u171-linux-x64.tar.gz /usr/local/java/

​ #配置java环境变量

​ ENV JAVA_HOME /usr/local/java/jdk1.8.0_171

​ ENV JRE_HOME $JAVA_HOME/jre

​ ENV CLASSPATH JAVAHOME/lib/dt.jar:JAVA_HOME/lib/dt.jar:JAVA_HOME/lib/tools.jar:JREHOME/lib:JRE_HOME/lib:CLASSPATH

​ ENV PATH JAVAHOME/bin:JAVA_HOME/bin:PATH

img

注意:由于创建jdk1.8镜像用到了docker.io/centos镜像,所以必须保证本地有该镜像。

​ (4) 执行命令构建镜像

​ 在dockerjdk8目录下执行: docker build -t=‘jdk1.8’ . 最后面的点,表示该根目录

​ (5) 查看镜像是否建立完成

​ docker images

6. Docker私有仓库

6.1 私有仓库的搭建及配置

​ (1) 拉取私有仓库镜像

​ docker pull registry

​ (2) 启动私有仓库容器

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

​ (3) 用浏览器访问:http://192.168.0.19:5000/v2/_catalog看到{“repositories”:[]}表示私有仓库搭建成功内容为空。

(4)修改daemon.json

​ vi /etc/docker/daemon.json

​ 添加以下内容并保存退出。

​ {“insecure-registries”:[“192.168.0.19:5000”]} 此步用于让docker信任私有仓库地址

(5) 重启docker服务

​ systemctl restart docker

6.2 镜像的上传及下载到私有仓库

6.2.1镜像的上传

​ (1) 标记次镜像为私有仓库的镜像

​ docker tag jdk1.8 192.168.0.19:5000/jdk1.8

​ (2) 上传标记镜像

​ 首先,上一步重启了docker服务,所以里面的registry容器也需要启动下。

​ 然后执行上传:docker push 192.168.0.19:5000/jdk1.8

img

6.2.2 镜像的下载

在另外一台虚拟机中安装docker(192.168.0.21)

​ (1)修改daemon.json

​ vi /etc/docker/daemon.json

​ 添加以下内容并保存退出。

​ {“insecure-registries”:[“192.168.0.19:5000”]} 此步用于让docker信任私有仓库地址

​ (2) 重启docker服务

​ systemctl restart docker

​ (3) 下载标记镜像

​ 然后执行下载:docker pull 192.168.0.19:5000/jdk1.8

发布了21 篇原创文章 · 获赞 2 · 访问量 744
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览