Docker 安装部署
Summary: Author: 张亚飞 | Read Time: 3 minute read | Published: 2018-08-08
Filed under
—
Categories:
DevOps
—
Tags:
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