Docker必读篇

83 阅读4分钟

“携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第7天,点击查看活动详情

生命无罪,健康万岁,我是laity。

我曾七次鄙视自己的灵魂:

第一次,当它本可进取时,却故作谦卑;

第二次,当它在空虚时,用爱欲来填充;

第三次,在困难和容易之间,它选择了容易;

第四次,它犯了错,却借由别人也会犯错来宽慰自己;

第五次,它自由软弱,却把它认为是生命的坚韧;

第六次,当它鄙夷一张丑恶的嘴脸时,却不知那正是自己面具中的一副;

第七次,它侧身于生活的污泥中,虽不甘心,却又畏首畏尾。

CentOS7安装Docker

  • 仓库、镜像、容器

Docker 要求 CentOS7 系统的内核版本在 3.10以上 ,查看本页面的前提条件来验证你的CentOS 版本是否支持 Docker 。

  • 通过 uname -r 命令查看你当前的内核版本
uname -r
  • 使用 root 权限登录 Centos。确保 yum 包更新到最新。
yum -y update  # 10分钟左右
  • 卸载旧版本(如果安装过旧版本的话)
yum remove docker docker-common docker-selinux docker-engine
  • 安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的
yum install -y yum-utils device-mapper-persistent-data lvm2
  • 设置yum源
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
  • 可以查看所有仓库中所有docker版本,并选择特定版本安装
yum list docker-ce --showduplicates | sort -r
  • 安装docker
sudo yum install -y docker-ce     #由于repo中默认只开启stable仓库,故这里安装的是最新稳定版18.03.1/20.10
  • 启动并加入开机启动
systemctl start docker
systemctl enable docker
  • 验证安装是否成功(有client和service两部分表示docker安装启动都成功了)
docker version
  • docker镜像加速
参考阿里云的镜像加速文档:https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors

您可以通过修改daemon配置文件/etc/docker/daemon.json来使用加速器
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://2qv4mkig.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
  • 查看是否加速配置成功
docker info

Docker快速入门

Docker常用命令

  • docker --help 帮助命令
  • docker -version
  • docker rmi -f kibana:5.6.9 删除镜像文件
  • docker images 查看本地images 镜像缓存
    • REPOSITORY 存储库名称
    • Tag 镜像的标签 不写版本号码 默认下载最新latest镜像
    • IMAGE ID 镜像id
    • CREATED 创建时间
    • SIZE 大小
    • docker images -a
    • docker images -q ---只显示镜像的id
    • docker images --digests ---显示镜像的摘要信息
    • docker images --no-trunc ---显示完整镜像信息
    • docker rmi tomcat(镜像文件名称)
  • docker search 搜索仓库中的
    • docker search mysql
    • docker search -s 30 mysql 列出点赞数超过30以上。
    • latest 表示为最新的镜像文件 mysql8.0版本
  • docker pull 下载
    • docker pull nginx:latest --默认的情况下 下载最新版本的镜像
    • docker pull tomcat:8 -- 通过 :8 下载指定版本
  • docker rmi 删除镜像
    • docker rmi 镜像id[IMAGE ID]

docker pull下载镜像 -- docker images查看下载好的本地镜像

Docker容器的使用

Docker run

docker run 
	-i(保持容器一直运行)
	-t(给容器一个伪终端)
	-d(后台运行,不直接进入容器) 
	--name=tomcat9.2(给启动容器起名字)
	-p 8080:8080(宿主:docker容器)
	tomcat:9.2(启动的容器)  【参数】(加入容器初始化命令)
docker run --name=tomcat tomcat:8
#通过 -it 启动的容器有两个特点 一创建就进入容器 exit退出容器 容器就会停止运行  ---交互式容器
#通过 -id 创建的容器 docker exec -it tomcat9.2(--name起的名称)进入容器 exit退出容器 容器不会停止运行   ---守护式容器
docker ps     # 查看正在运行的容器
docker ps -a  # 查看运行和已经运行关闭大的容器
docker stop tomcat8  # 关闭容器
docker start tomcat8 # 启动容器
docker rm tomcat8    # 删除容器
docker inspect tomcat8 # 查看容器信息
docker exec 参数  # 进入容器

docker rm 容器id  # 删除容器
# 首先使用下面的命令,查看容器ID(CONTAINER ID):
docker ps -a

# 然后用下面的命令进入容器,就可以使用bash命令浏览容器里的文件:
docker exec -it [CONTAINER ID] bash
# 有的镜像没有bash命令,可以用对应的shell,比如sh
docker exec -it [CONTAINER ID] sh

# 容器id的获取
Docker ps  # 获取到容器id
docker inspect  1e07cc5cc78d # 查看容器信息

Docker Commit

  • 自己制作镜像

内存卷

nginx 使用本地内存

DockerFile学习

  • dockerfile --> 镜像 --> 容器中运行

DockerFile指令

  • 指令必须大写
1.FROM 指定父镜像:  基于哪个镜像image构建  指定基础镜像,必须为第一个命令
2.MAINTAINER :维护者
3.RUN: 容器创建的时候执行一段命令   构建镜像时执行的命令
4.ADD: 将本地文件添加到容器中,tar类型文件会自动解压(网络压缩资源不会被解压),可以访问网络资源,类似wget
5.COPY:功能类似ADD,但是是不会自动解压文件,也不能访问网络资源
6.CMD:构建容器后调用,也就是在容器启动时才进行调用。 .sh执行文件  /bin/bash
7.ENV: 设置环境变量
8.EXPOSE: 指定于外界交互的端口
9.VOLUME  用于指定持久化目录
10.WORKDIR 设置进入容器时的路径 默认访问的目录

vim的安装

yum -y install vim 

制作自己的镜像步骤

Dockerfile	→	使用docker 将该Dockerfile实现打包成镜像文件	→	容器运行该镜像文件。
	docker build---将该Dockerfile实现打包成镜像文件
	将该dockerfile文件上传到linux服务器中

使用docker build -f Dockerfile -t mycs:1
    Dockerfile ------配置文件
    mycs----打包镜像文件名称
    1--- 版本号
docker run -it mycs:1  运行自己制作的镜像文件

Docker常用命令

docker rm $(docker ps -aq)
docker stop $(docker ps -q) & docker rm $(docker ps -aq) ---停止并删除所有的容器
docker rmi $(docker images -q)
docker network ls

Docker安装DM8数据库

docker import dm8_docker.tar  # 获取dm8镜像
docker images  # 查看image id
docker tag id号 dm:8
docker run -d --name dm8 -p 5236:5236 dm:8 /bin/bash /startDm.sh  # 启动 dm8
docker ps -a # 查看运行容器的状态