Docker 初学笔记

一.安装Docker

1.搭建一个Centos7.x的虚拟机
2.yum包更新到最新

sudo yum update

3.安装需要的软件包,yum-util提供yum-config-manager功能,另外两个是devicemapper驱动依赖的

sudo yum install -y yum-utils device-mapper-persistent-data lvm2

4.设置yum源为阿里云

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

5.安装docker

sudo yum install docker-ce

6.查看安装版本

docker -v

二. docker配置站点/启动与暂停

2.1 设置一个国内站点ustc镜像

1.编辑该文件

vi /etc/docker/daemon.json

输入以下内容:

{
"registry-mirrors":["https://docker.mirrors.ustc.edu.cn"]
}

2.2 启动/查看状态/停止/重启/概要/帮助docker命令

启动

systemctl start docker

查看状态

systemctl status docker

关闭

systemctl stop docker

重启

systemctl restart docker

开机自启

systemctl enable docker

查看docker概要信息

docker info

查看docker帮助文档

docker --help

三.常用命令

3.1 镜像相关命令

查看镜像

docker images

搜索镜像

docker search 镜像名称

拉取镜像

docker pull 镜像名称

删除镜像

docker rmi 镜像ID

删除所有镜像
注:`不是‘,是ESC下面的哪个点

docker rmi `docker images -q`

3.2 查看容器相关命令

查看运行中的容器

docker ps

查看所有容器

docker ps -a

3.3 创建与启动容器

创建容器

docker run

参数:
-i : 表示运行容器
-t: 表示容器启动后进入其命令行,与-i连用,创建后就能登陆进去,即分配一个伪终端
–name :为创建的容器命名
-v :表示目录的映射关系,前者是宿主机目录,后者是映射到宿主机上的目录
-d : 创建一个守护式容器在后台运行
-p: 表示端口映射,前者是宿主机端口,后者是容器内映射端口

交互式创建容器
交互式方式运行容器,用exit退出时,容器也就停止了

docker run -it --name=mycentos  tutum/centos /bin/bash

守护式方式创建容器
守护式创建的容易,用exit推出去,容器还会继续运行

 docker run -dt --name=mycentos7  tutum/centos

进入已经创建好的容器

docker exec -it mycentos7 /bin/bash

停止正在启动的容器

docker stop 容器名称

启动已经停止的容器

docker start 容器名称

3.4 容器文件拷贝cp

将文件拷贝到容器

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

将容器的文件拷贝出来

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

3.5 目录挂载

创建容器时,将宿主机的目录与容器内的目录进行映射,修改宿主机的内容从而影响容器。

docker run -di --name=mycentos3 -v /tmp/:/tmp tutum/centos

3.5 查看容器IP地址

查看全部信息

docker inspect mycentos3

单独提取要查看的内容

docker inspect --format='{{.NetworkSettings.IPAddress}}' mycentos3

3.6 删除容器

必须在关闭状态下

docker rm 容器名称

四.应用部署

4.1 mysql部署

1.拉取镜像

docker pull centos/mysql-57-centos7

2.创建容器
-p :映射端口,可以通过宿主机的端口访问容器
-e:设置Mysql密码

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

3.链接数据库
使用sqlyog:
新建一个新的连接,输入宿主机的IP,端口号设为容器映射的端口号,点击测试连接,提示成功即可
在这里插入图片描述

4.2 tomcat部署

1.拉取镜像
7:代表tomacat本身版本
jre7:代表jre的版本

docker pull tomcat:7-jre7

2.创建容器
-v:挂载

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

3.访问
将war包放入webapps下,科直接访问
在网页中输入宿主机ip加上映射的端口号加访问的包
192.168.11.3:9000/cas

4.3 Nginx 部署

1.拉取镜像

docker pull nginx

2.创建nginx容器

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

4.4 redis部署

1.拉取镜像

docker pull redis

2.创建容器

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

3.连接
利用本地的redis客户端输入宿主机连接地址
redis-cli -h 192.168.11.3

五. 迁移与备份

5.1 容器保存为镜像

docker commit 容器名 镜像名

docker commit mynginx mynginx_01

5.2 备份镜像

docker save -o 备份文件名 镜像名

docker save -o mynginx.tar mynginx

5.3 备份恢复为镜像

docker load -i 备份文件名

docker load -i mynginx.tar

六.DockerFile

概念:是由一系列命令和参数构成的脚本,这些命令应用于基础镜像并最终创建一个新的镜像

6.1 常用命令

命令作用
FROM image_name:tag定义了使用哪个基础镜像启动构建流程
MAINTAINER user_name声明镜像的创作者
ENV key value设置环境变量(可以写多条)
RUN command是Dockerfile的核心部分(可以写多条)
ADD source_dir/file dest_dir/file将宿主机的文件复制到容器内,如果是一个压缩文件将会复制后自动解压
COPY source_dir/file dest_dir/file和ADD相似,但是如果有压缩文件并不能解压
WORKDIR path_dir设置工作目录

6.2 例:Dockerfile构建jdk1.8镜像

1.将JDK1.8的压缩包上传至linux目录内

/usr/local/dockerjdk8

2.在该目录内编辑文件,文件名称固定不能更改

vi Dockerfile
FROM centos:7   //基础镜像,不存在会自动下载
MAINTAINER xkm  //指定镜像的创建者
WORKDIR /usr   //指定工作目录
RUN mkdir /usr/local/java    //创建一个目录
ADD jdk-8u171-linux-x64.tar.gz /usr/local/java   //添加包,并会自动解压到该目录

//以下是配置环境变量				
ENV JAVA_HOME /usr/local/java/jdk.1.8.0_171  //解压后是该名字
ENV JRE_HOME $JAVA_HOME/jre
ENV CLASSPATH $JAVA_HOME/bin/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH
ENV PATH $JAVA_HOME/bin:$PATH

3.输入构建命令
-t : 名字
. :在当前目录构建

docker build -t='jdk1.8' .

**4.**查看
输入以下命令会发现jdk.18镜像已经出现:

docker images 

七. Docker私有仓库

7.1 搭建私有仓库

1.拉取私有仓库镜像

docker pull registry

2.启用私有仓库容器

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

3.登陆以下网页检测是否创建成功

http://192.168.11.3:5000/v2/_catalog

4.配置daemon.json
在以下文件内加入该命令,表示新人该私有仓库地址
vi /etc/docker/daemon.json

"insecure-registries":{["192.168.11.3:5000"]}

5.重启服务,使其生效
注:重启docker后容器也需要手动start,否则默认关闭

systemctl restart docker

7.2 镜像上传到私有仓库

1.给要上传的镜像打一个标签
给jdk1.8打192.168.11.3:5000/jdk1.8的标签,表示该镜像为私有仓库的镜像

docker tag jdk1.8 192.168.11.3:5000/jdk1.8

打完标签后输入docker images会出现该镜像

2.上传镜像到私有仓库

docker push 192.168.11.3:5000/jdk1.8
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值