docker的简单使用

概念图

docker概念图

命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
# 删除镜像
docker rm ID
# 删除仓库镜像
docker rmi ID

# 拉取镜像
docker pull node

# 拉取指定镜像版本
docker pull node:latest

# 运行镜像
docker run node

# 后台运行镜像
docker run -d node

# 停止
docker stop node

# 重启
docker restart node

# 端口映射,外部:内部
docker run -d 80:80 nginx

# 查看docker运行
docker ps

# 查看docker运行日志
docker logs ID
docker logs NAME

# 结束镜像
docker kill ID
docker kill NAME

# 进入镜像操作
docker exec -it ID /bin/bash

# 强制删除使用中的镜像
docker rm -f ID

# commit 修改打包镜像(不推荐)
docker commit -m "信息" ID username/project:vesion

Dockerfile方式打包镜像

1
2
3
4
mkdir abc
cd abc
vi Dockerfile
docker build -t "username/abc:v1" .

一个简单的Dockerfile,已发布在docker社区

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
FROM node:lts-stretch-slim
ENV LANG C.UTF-8
MAINTAINER lenyuadmin
WORKDIR /opt/hexo
RUN apt-get update -y \
&& apt-get install -y git \
&& npm install hexo-cli -g \
&& echo "---------------" \
&& node -v \
&& echo "---------------" \
&& git --version \
&& echo "---------------" \
&& npm -v \
&& echo "------end---------"
WORKDIR blog

问题

容器启动报错

Error response from daemon: Conflict. The container name “/xware” is already in use by container “3664cd9dca080ee8bb1438cb6b6f01f6cd12d39b7674d202c801b2720bad4a65”. You have to remove (or rename) that container to be able to reuse that name.

解决:结束进程,删除镜像或者重命名将xware改成 xware2 或者 xwareN

1
2
docker kill 3664cd9dca080ee8bb1438cb6b6f01f6cd12d39b7674d202c801b2720bad4a65
docker rm 3664cd9dca080ee8bb1438cb6b6f01f6cd12d39b7674d202c801b2720bad4a65

安装

Play With Docker(Docker在线实验室) 是一个运行在浏览器中的Docker Playground,无需安装任何环境,就可以在线体验 Docker。

​ 安装是不可能的,既麻烦又耗时间。所以我推荐Play with Docker,登录后既可以无限试用4个小时。

play-with-docker源码

镜像加速器

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
// Docker官方提供的中国镜像库:https://registry.docker-cn.com
// 七牛云加速器:https://reg-mirror.qiniu.com
// 网易加速器:http://hub-mirror.c.163.com
// daocloud加速器:http://f1361db2.m.daocloud.io
//******以下为配置文件******
{
"registry-mirrors" : [
"https://registry.docker-cn.com",
"http://f1361db2.m.daocloud.io"
],
"insecure-registries" : [
"registry.docker-cn.com",
"f1361db2.m.daocloud.io"
],
"debug" : true,
"experimental" : true
}

参考