有勇气的牛排博客

Docker命令基础 精简版本 快速安装部署手册

有勇气的牛排 980 云原生 2021-08-26 21:57:34

1 介绍

Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化。

Docker使用Go语言开发,基于Linux内核的cgroup、namespace、以及UnionFS等技术,对进程进行封装隔离,属于操作系统层面的虚拟化技术。

Docker由三个基本部分组成:

  • 镜像(Image):Docker镜像是Docker容器运行时的只读模板,可以用来创建Docker容器。
  • 容器(Container):Docker容器是运行时的实例,它是镜像运行时的实体。
  • 仓库(Repository):Docker仓库用来保存多个镜像,可以理解为代码仓库。

1.1 环境查看+安装

1、官方教程

2、确定为Centos7以上版本

# 系统内核是 3.10 以上的 [root@huawei ~]# uname -r 3.10.0-1160.45.1.el7.x86_64
cat /etc/os-release

3、yum安装gcc相关环境

yum -y install gcc yum -y install gcc-c++

4、卸载旧版本

yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine

5、安装需要的软件包

yum install -y yum-utils

6、使用阿里云镜像

yum-config-manager \ --add-repo \ http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo # 最新阿里 yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

7、更新yum软件包索引

yum makecache fast

8、安装docker相关的社区
docker-ce:社区
docker-ee:企业版 可以指定版本安装

yum -y install docker-ce docker-ce-cli containerd.io

9、启动docker

systemctl start docker
# 开机启动 systemctl enable docker

10、配置镜像加速器

阿里云:https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors

sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["https://q5vcymug.mirror.aliyuncs.com"] } EOF sudo systemctl daemon-reload sudo systemctl restart docker

其他源

{ "registry-mirrors": [ "https://9cpn8tt6.mirror.aliyuncs.com", "https://8bhew391.mirror.aliyuncs.com", "https://almtd3fa.mirror.aliyuncs.com", "https://hccwwfjl.mirror.aliyuncs.com", "https://registry.docker-cn.com", "http://hub-mirror.c.163.com" ] }

1.2 常用命令

# 镜像操作 docker images # 查看所有本地的主机上的镜像 docker images --help # 镜像帮助 docker images -a docker images -q # 容器操作 # docker ps 命令 # 列出当前正在运行的容器 -a # 列出当前正在运行的容器+带出历史运行过的容器 -n=? # 显示最近创建的容器 -q # 只显示容器的编号

2 镜像命令

# 搜索镜像 docker search mysql # 下载镜像 docker pull mysql docker pull mysql:5.7 # 删除指定的镜像 docker rmi -f 容器删除多个镜像 # 删除多个镜像 docker rmi -f 镜像id 镜像id 镜像id # 删除全部镜像 docker rmi $(docker images -aq) # 查看镜像元数据 docker inspect 容器id

镜像加速器

阿里云:https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors

sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["https://q5vcymug.mirror.aliyuncs.com"] } EOF sudo systemctl daemon-reload sudo systemctl restart docker

使用镜像,启动一个容器

交互方式,启动centos

docker run -it centos-base:1.0
docker run -d --name nginx-test nginx
docker run -it centos-base01 /bin/bash
docker run -d -P --name centos-base01 centos-base /bin/bash

3 容器命令

# 启动和停止容器 docker start 容器id # 启动容器 docker restart 容器id # 重启容器 docker stop 容器id # 停止当前正在运行的容器 docker kill 容器id # 强制停止当前容器 # 进入正在运行容器 # 格式:docker exec -it 容器id bashShell docker exec -it e40bd5ee5f42 /bin/bash # 进入容器 显示正在执行当前的代码 docker attach 容器id # 删除容器 docker rm 容器id # 删除指定的容器,不能删除正在运行的容器,如果删除 rm -f docker rm -f $(docker ps -aq) # 删除所有的容器 docker ps -a -q|xargs docker rm # 删除所有的容器

4 容器+主机文件操作 复制

容器 —> 宿主机

docker cp 容器id:容器内路径 目的的主机路径

宿主机 —> 容器

docker cp 宿主机文件路径 镜像名称:镜像中文件存放路径

5 查看容器进程

# 命令 docker top 容器id docker top b737e6d65198

6 查看日志

# 显示日志 -tf # 显示日志 --tail number # 要显示日志条数 docker logs -tf --tail 10 容器id

7 commit镜像

# 命令和git原理类似 docker commit -m="提交的描述信息" -a="作者" 容器id 目标镜像名:[TAG] docker commit -a="有勇气的牛排" -m="add webapps app" 48629b5a69d2 tomcat02:1.0

8 DockerFile

关键字

FROM # 基础镜像,一切从这里开始构建 centosMAINTAINER # 镜像是谁写的:姓名+邮箱RUN # 镜像构建的时候需要运行的命令ADD # 步骤:tomcat镜像,这个tomcat压缩包,添加内容WORKDIR # 镜像的工作目录VOLUME # 挂载的目录EXPOSE # 暴露端口配置CMD # 指定这个容器启动的时候运行的命令,只有最后一个会生效,可被替代ENTRYPOINT # 指定这个容器启动的时候要运行的命令,可以追加命令ONBUILD # 当构建一个被继承 DokcerFile 这个时候就会运行 ONBUILD 的指令,触发指令COPY # 类似ADD,将我们文件拷贝到镜像中ENV # 构建的时候,设置环境变量

实战测试构建自己的centos

# 1.编写dockerfile的文件[root@vitloud dokcerfile] # cat mydockerfile-centosFROM centosMAINTAINER vitcloud<vitcluod@163.com>ENV MYPATH /usr/localWORKDIR $MYPATHRUN yum -y install vimRUN yum -y install net-toolsEXPOSE 80CMD echo $MYPATHCMD echo "---end---"CMD /bin/bash # 2.构建docker build -f mydockerfile-centos -t mycentos:0.1 . # 3.运行docker run -it mycentos:0.1

8.1 tomcat案例

# 启动容器docker run -it -p 8080:8080 tomcat

留言

专栏
文章
加入群聊