Docker 基于Centos学习笔记

1.安装docker(基于centos7.x)

1. yum包更新到最新

sudo yum update

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

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

3. 设置yum源为阿里云

sudo yum-config-manager \
    --add-repo \
    https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

4.安装 dicker

sudo yum install docker-ce

5. 安装后查看docker 版本

docker -v

2.设置 ustc 的镜像

docker镜像加速器

https://lug.ustc.edu.cn/wiki/mirrors/help/docker

编辑该文件

vi /etc/docker/daemon.json

在该文件中输入如下内容:

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

 

3.docker的启动与停止

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

启动docker

systemctl start docker

停止docker

system stop docker

重启docker

systemctl restart docker

查看docker状态

systemctl status docker

开机启动

systemctl enable docker

查看docker概要信息

docker info

3.常用命令

查看镜像

docker images

搜索镜像

docker search 镜像名称

拉取镜像

docker pull 镜像名称

例如:

docker pull centos:7

删除镜像

docker rmi 镜像名称

删除所有镜像

docker rmi `docker images -q` 

 

4.容器相关命令

查看容器

查看正在运行的容器

docker ps

查看所有容器

docker ps -a

查看最后一次运行容器

docker ps -l

查看停止的容器

docker ps -f status=exited

创建与启动容器

创建容器命令

docker run

-i:表示运行容器

-t:表示容器启动后会进入其命令行。加入这两个参数后,容器创建就嫩登录进去。即分配一个伪终端

--name:为创建的容器命名

-v:表示目录映射(前者是宿主机目录,后者是映射到宿主机上的目录)

-d:在run后面加上-d参数,则会创建一个守护式容器在后台运行(这样创建的容器不会自动登录容器,如果只加 -i -t 两个参数,创建后就会自动进去容器)

-p:表示端口映射,前者是宿主机端口,后者是容器内的映射端口。可以使用多个 -p 做多个端口映射

 

交互式方式创建容器

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

这时我们通过ps命令查看,发现可以看到启动的容器,状态为启动状态

退出当前容器

exit

守护方式创建容器

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

登录守护式容器方式

docker exec -it 容器名称(或者容器id) /bin/bash

停止与启动容器

停止容器

docker stop 容器名称

启动容器

docker start 容器名称

文件拷贝

如果我们需要将文件拷贝到容器内可以使用cp命令

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

也可以将文件从容器内拷贝出来

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

目录挂载

我们可以在创建容器的时候,将宿主机的目录与容器的目录进行映射,这样我们就可以通过修改宿主机某个目录的文件从而去影响容器。

创建容器 添加 -v 参数后边为 宿主机目录:容器目录,例如:

docker run -di -v /usr/local/myhtml:/usr.local/myhtml --name=mycentos3 centos:7

如果你是共享的多级目录,可能会出现权限不足的提示。这是因为Centos7中的安全模块selinux把权限禁掉了,我们需要添加参数 --privileged=true 来解决挂载的目录没有权限的问题

查看容器IP地址

我们可以通过一下命令查看容器运行的各种数据

docker inspect 容器名称 

也可以直接执行下面的命令直接输出IP地址

docker inspect --format='{{.NetworkSettings.IPAddress}}' 容器名称

删除容器

docker rm 容器名称

应用部署

Mysql部署

1.拉取mysql镜像

docker pull centos/mysql-57-centos7

2.创建容器

docker run di --name=tensquare_mysql -p 33306:3306 -e MYSQL_ROOT_PASSWORD=root mysql

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

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

3.远程登录mysql

连接宿主机IP,指定端口为33306

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

Nginx部署

1.拉取镜像

docker pull nginx

2.创建Nginx容器

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

Redis部署

1.拉取镜像

docker pull redis

2.创建容器

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

迁移与备份

容器保存为镜像

我们可以通过一下命令将容器保存为镜像

docker commit mynginx mynginx_i

镜像备份

我们可以通过一下命令将镜像保存为 tar 文件

docker save -o mynginx.tar mynginx_i

镜像恢复与迁移

首先我们先删除掉mynginx_img镜像 然后执行此命令进行恢复

docker load -i mynginx.tar

-i 输入的文件

执行后再次查看镜像,可以看到镜像已经恢复

DockerFile

什么是Dockerfile

dockerfile是由一系列命令和参数构成的甲苯,这些命令应用于基础镜像不最终创建一个新的镜像。

1.对于开发人员:可以为开发团队提供一个完全一致的开发环境;

2.对于测试人员:可以直接拿开发时所构建的镜像或者通过dockerfile文件构建一个新的镜像开始工作;

3.对于运维人员:在部署时,可以实现应用的无缝移植。

常用命令

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

使用脚本创建镜像

步骤

1. 创建目录

mkdir -p /usr/local/dockerjdk8

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

3.创建 Dockerfile 

// 注意文件名必须如此

vi Dockerfile

#依赖镜像名称和ID

FROM centos:7

#指定镜像创建者信息

MAINTAINER Xhong

#切换工作目录

WORKDIR /usr

RUN mkdir /usr/local/java

#ADD 是相对路径jar,把Java添加到容器中

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

#配置Java环境变量

EVN JAVA_HOME /usr/local/java/jdk1.8.0_171

ENV JRE_HOME $JAVA_HOME/jre

ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH

ENV PATH $JAVA_HOME/bin:$PATH

4. 执行命令构建镜像

docker build -t='jdk1.8' .

注意后面的空格和点 . 不要省略

5. 查看镜像是否建立完成

docker images

Docker 私有仓库

私有仓库有搭建与配置

1. 拉取私有仓库镜像

docker pull registry

2. 启动私有仓库

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

3. 打开浏览器输入地址  http://39.97.171.19:5000/v2/_catalog(地址为个人服务器地址) 看到  {"repositories":[]} 表示私有仓库搭建成功并且内容为空

4. 修改 daemon.json

vi /etc/docker/daemon.json

添加以下内容,保存退出。

"insecure-registries": ["39.97.171.19:5000"]    (地址为个人服务器地址,按需修改)

此步用于让docker信任私有仓库地址

5. 重启 docker 服务

systemctl restart docker

镜像上传至私有仓库

1. 标记此镜像为私有仓库的镜像

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

2. 再次启动 私有容器

docker start registry

3. 上传标记的镜像

docker push 39.97.171.19:5000/jdk1.8  

4. 使用配置 

修改 daemon.json

docker pull 39.97.171.19:5000/jdk1.8  

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值