Docker 安装部署

Summary: Author: 张亚飞 | 阅读时间: 3 minute read | Published: 2018-08-08
Filed under Categories: DevOpsTags: Linux, Server, Software, DevOps,

Reference


Docker 安装 - Ubuntu

安装依赖包

sudo apt update
sudo apt install apt-transport-https ca-certificates curl software-properties-common

导入 Docker 官方镜像源

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

验证 apt-key

sudo apt-key fingerprint 0EBFCD88

添加 Key

sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

开始安装 Docker

sudo apt update
sudo apt install docker-ce

Docker 安装 - CentOS

安装依赖包

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

导入 Docker 官方镜像源 - 默认 stable 版

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

开始安装 Docker

sudo yum update
sudo yum install docker-ce

Docker 管理

Docker 需要用户具有 sudo 权限,为了避免每次命令都输入 sudo,可以把用户加入 Docker 用户组(官方文档).

sudo usermod -aG docker $USER

注意: 需要重启服务器才能生效.

Docker 服务管理

sudo systemctl restart docker

Docker 常用命令

docker version
docker info

Docker 容器资源管理

列出本机的所有 image 文件.

docker image ls

删除 image 文件

docker image rm [imageName]

image 文件从仓库抓取到本地

docker image pull library/hello-world

运行这个 image 文件

docker container run hello-world

查看列出本机正在运行的容器:

docker container ls

列出本机所有容器,包括终止运行的容器

docker container ls --all

杀掉已运行的进程

docker container kill [containID]

终止运行的容器文件,依然会占据硬盘空间,可以使用 docker container rm 命令删除

docker container rm [containerID]

查找所有 Docker 镜像

coam@MacPro:~$ docker search coam
NAME                DESCRIPTION         STARS               OFFICIAL            AUTOMATED
coam/app            商运物流                0

创建 Dockerfile 文件,使用 docker image build 命令创建 image 文件了

FROM node:8.4
COPY . /app
WORKDIR /app
RUN npm install --registry=https://registry.npm.taobao.org
EXPOSE 3000

可以编译镜像了

docker image build -t koa-demos .
//docker image build -t koa-demos:0.0.1 .

如果运行成功,就可以看到新生成的 image 文件 koa-demos 了.

coam@MacPro:~$ docker image ls
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
koa-demos            latest              b02d929c98f1        57 seconds ago      676MB

docker container run 命令会从 image 文件生成容器.

$ docker container run -p 8000:3000 -it koa-demo /bin/bash
# 或者
$ docker container run -p 8000:3000 -it koa-demo:0.0.1 /bin/bash

发布 image 文件

登录 Docker 账户

docker login

为本地的 image 标注用户名和版本

docker image tag [imageName] [username]/[repository]:[tag]

docker image tag koa-demos:0.0.1 coam/koa-demos:0.0.1

也可以在构建时指定一下用户名无需以上操作,重新构建新的 image 文件.

docker image build -t [username]/[repository]:[tag] .

docker image build -t coam/koa-demos:0.0.1 .

最后,发布 image 文件.

docker image push [username]/[repository]:[tag]

docker image push coam/koa-demos:0.0.1

发布成功以后,登录 hub.docker.com,就可以看到已经发布的 image 文件.


其他有用的命令

Docker 的主要用法就是上面这些,此外还有几个命令,也非常有用.

docker container start

前面的 docker container run 命令是新建容器,每运行一次,就会新建一个容器.同样的命令运行两次,就会生成两个一模一样的容器文件.如果希望重复使用容器,就要使用 docker container start 命令,它用来启动已经生成、已经停止运行的容器文件.

docker container start [containerID]

docker container stop

前面的 docker container kill 命令终止容器运行,相当于向容器里面的主进程发出 SIGKILL 信号.而 docker container stop 命令也是用来终止容器运行,相当于向容器里面的主进程发出 SIGTERM 信号,然后过一段时间再发出 SIGKILL 信号.

docker container stop [containerID]

这两个信号的差别是,应用程序收到 SIGTERM 信号以后,可以自行进行收尾清理工作,但也可以不理会这个信号.如果收到 SIGKILL 信号,就会强行立即终止,那些正在进行中的操作会全部丢失.

docker container logs

docker container logs 命令用来查看 Docker 容器的输出,即容器里面 Shell 的标准输出.如果 docker run 命令运行容器的时候,没有使用 -it 参数,就要用这个命令查看输出.

docker container logs [containerID]

docker container exec

docker container exec 命令用于进入一个正在运行的 Docker 容器.如果 docker run 命令运行容器的时候,没有使用 -it 参数,就要用这个命令进入容器.一旦进入了容器,就可以在容器的 Shell 执行命令了.

docker container exec -it [containerID] /bin/bash

docker container cp

docker container cp 命令用于从正在运行的 Docker 容器里面,将文件拷贝到本机.下面是拷贝到当前目录的写法.

docker container cp [containID]:[/path/to/file] .

Comments

Cor-Ethan, the beverage → www.iirii.com