Source

【docker入门】10分钟,快速学会docker

1 获取镜像

1
2
docker pull nginx
docker pull nginx:latest

2 查看本地镜像

1
docker images

3 运行镜像

1
docker run -d -p 80:80 nginx

-d 后台运行

-p 内外端口映射

4 查看正在运行的容器

1
docker ps

5 修改容器

1
docker exec -it xxxx bash

-it 接容器id

6 删除容器

1
docker rm -f xxx

7 提交容器

1
docker commit xxx name(自己定一个名字)

8 通过dockerfile构建镜像跑成容器

新建dockerfile文件(写法自行查阅官方文档)

然后在当前目录新建index.html

9 保存文件和重新加载

摘一个网友(湿漉漉的小狐狸)的笔记

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
安装和常用CLI:
添加阿里云镜像:sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
安装命令:sudo yum install -y docker-ce docker-ce-cli containerd.io
启动命令:sudo systemctl start docker
添加当前用户到docker用户组:sudo usermod -aG docker $USER (需注销),newgrp docker (立即生效)
Helloworld:docker run hello-world (本地没有镜像的话会自动从远端仓库pull)
pull nginx 镜像:docker pull nginx(等效于nginx:latest)
运行:docker run -【d】(后台运行不阻塞shell) 【-p 80:80】(指定容器端口映射,内部:外部) nginx
查看正在运行:docker ps
删除容器:docker rm -f <container id(不用打全,前缀区分)>
进入bash:docker exec -it <container id(不用打全,前缀区分)> bash
commit镜像:docker commit <container id(不用打全,前缀区分)> <name>
查看镜像列表:docker images (刚才commit的镜像)
使用运行刚才commit的镜像:docker run -d <name>
使用Dockerfile构建镜像:docker build -t <name> <存放Dockerfile的文件夹>
删除镜像:docker rmi <name>
保存为tar:docker save <name> > <tar name>
从tar加载:docker load < <tar name>

一些启动参数:
后台运行容器:-d
容器内外端口映射:-p 内部端口号:外部端口号
目录映射:-v 'dir name' : <dir>
指定映像版本:<name>:<ver>

【docker入门2】实战~如何组织一个多容器项目docker-compose

https://github.com/sunwu51/notebook/tree/master/19.07

https://github.com/bobo132/docker-compose-demo-1

多容器项目的组织

1
2
3
4
docker run -d -p 80:80 --name mynginx nginx
docker ps
docker exec -it mynginx bash
cat /etc/hosts

172.17.0.2是容器的ip,然后我们退出(exit)然后又启动一个新的容器

1
2
3
4
5
docker run -dit alpine
docker exec -it xxxx(容器id)

apk add curl
curl 172.17.0.2

–link 参数 把另一个容器映射到本容器里面(通过修改/etc/hosts文件)

三个容器的组织

注意:创建顺序需要先mysql,然后启动php的时候link参数映射到mysql,同理类推~
这样对运维来说太麻烦了,有什么好方法吗?docker-compose

docker-compose 用法

(本小节实验涉及的文件参考:https://github.com/bobo132/docker-compose-demo-1)

新建俩文件夹

1
2
3
--
|- conf
|- html

然后在conf/下面建立nginx.conf

(略)

然后写docker-compose.yml

(不能指定官方的php,因为缺少扩展,搜索php-fpm然后选一个~

然后退出vim~ 在该目录下运行docker-compose up -d (-d 后台启动)

【Docker】Dockerfile用法全解析

漏掉了USER,用于指定RUN CMD等指令运行时的用户身份,不指定是root。 用法(下面组相关的可以不指定):

USER 用户名:用户组 或 USER 用户id:组id

【kubernetes入门】快速了解和上手容器编排工具k8s

https://github.com/sunwu51/notebook/tree/master/19.07