Skip to content

Commit 8c559a7

Browse files
committed
Docker 快速入门
1 parent 98aca56 commit 8c559a7

5 files changed

Lines changed: 341 additions & 8 deletions

File tree

README.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -137,13 +137,13 @@
137137

138138
## 七、分布式
139139

140-
- 微服务思想
140+
- [Docker](notes/Docker基础.md)
141141

142-
服务拆分,持续集成、持续交付、持续部署
142+
容器化引擎服务
143143

144-
- [Docker](notes/Docker.md)
144+
- 微服务思想
145145

146-
容器化引擎服务
146+
服务拆分,持续集成、持续交付、持续部署
147147

148148
- Kubernetes(k8s)
149149

notes/Docker基础.md

Lines changed: 333 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,333 @@
1+
# 一、Docker 快速入门
2+
3+
## CentOS 7 安装 Docker
4+
5+
1. 先更新 yum 软件管理器,然后再安装 Docker
6+
7+
```shell
8+
[root@localhost /] yum -y update
9+
[root@localhost /] yum install -y docker
10+
```
11+
12+
  说明:上述 `-y` 代表选择程序安装中的 yes 选项
13+
14+
  或是,直接安装
15+
16+
```shell
17+
yum install docker
18+
```
19+
20+
2. 验证安装,查看 Docker 版本信息
21+
22+
```shell
23+
[root@localhost /] docker -v
24+
Docker version 1.13.1, build 8633870/1.13.1
25+
You have new mail in /var/spool/mail/root
26+
```
27+
28+
3. 启动 / 重启 / 关闭 Docker
29+
30+
```shell
31+
[root@localhost /] docker start
32+
[root@localhost /] docker restart
33+
[root@localhost /] docker stop
34+
```
35+
36+
37+
38+
## Docker 镜像加速器
39+
40+
1. 加速器服务
41+
42+
[DaoCloud 加速器,一行命令,镜像万千](https://www.daocloud.io/mirror)
43+
44+
2. 配置 Docker 加速器
45+
46+
  以 Linux 为例
47+
48+
```shell
49+
curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://f1361db2.m.daocloud.io
50+
```
51+
52+
  该脚本可以将 --registry-mirror 加入到你的 Docker 配置文件 /etc/docker/daemon.json 中。适用于 Ubuntu14.04、Debian、CentOS6 、CentOS7、Fedora、Arch Linux、openSUSE Leap 42.1,其他版本可能有细微不同。更多详情请访问文档。
53+
54+
  删除 /etc/docker/daemon.json 中最后一个逗号,重启 Docker 服务即可
55+
56+
57+
58+
## Docker 常用命令
59+
60+
![docker-cmd](assets/docker-cmd.png)
61+
62+
### 1. 启动、停止、重启服务
63+
64+
```shell
65+
[root@localhost ~]# service docker restart
66+
Redirecting to /bin/systemctl restart docker.service
67+
[root@localhost ~]# service docker stop
68+
Redirecting to /bin/systemctl stop docker.service
69+
[root@localhost ~]# service docker start
70+
Redirecting to /bin/systemctl start docker.service
71+
```
72+
73+
### 2. 拉取一个镜像,启动容器
74+
75+
```shell
76+
[root@localhost ~]# docker pull centos
77+
[root@localhost ~]# docker run -it -v /centos_dir:/docker_dir --name biodwhu-1 centos
78+
```
79+
80+
- -i:允许我们对容器内的 (STDIN) 进行交互
81+
- -t:在新容器内指定一个伪终端或终端
82+
- -v:是挂在宿机目录, /centos_dir 是宿机目录,/docker_dir 是当前 Docker 容器的目录,宿机目录必须是绝对的。
83+
- -p:端口映射
84+
- --name:是给容器起一个名字,可省略,省略的话 docker 会随机产生一个名字
85+
86+
### 3. 启动的容器列表
87+
88+
```shell
89+
[root@localhost ~]# docker ps
90+
```
91+
92+
### 4. 查看所有的容器
93+
94+
```shell
95+
[root@localhost ~]# docker ps -a
96+
```
97+
98+
### 5. 启动、停止、重启某个容器
99+
100+
```shell
101+
[root@localhost ~]# docker start biodwhu-1
102+
biodwhu-1
103+
[root@localhost ~]# docker stop biodwhu-2
104+
biodwhu-2
105+
[root@localhost ~]# docker restart biodwhu-3
106+
biodwhu-3
107+
```
108+
109+
### 6. 查看指定容器的日志记录
110+
111+
```shell
112+
[root@localhost ~]# docker logs -f biodwhu-1
113+
```
114+
115+
### 7. 删除某个容器,若正在运行,需要先停止
116+
117+
```shell
118+
[root@localhost ~]# docker rm biodwhu-1
119+
Error response from daemon: You cannot remove a running container 2d48fc5b7c17b01e6247cbc012013306faf1e54f24651d5e16d6db4e15f92d33. Stop the container before attempting removal or use -f
120+
[root@localhost ~]# docker stop biodwhu-1
121+
biodwhu-1
122+
[root@localhost ~]# docker rm biodwhu-1
123+
biodwhu-1
124+
```
125+
126+
### 8. 删除容器
127+
128+
```shell
129+
# 删除某个容器
130+
[root@localhost ~]# docker rm f3b346204a39
131+
132+
# 删除所有容器
133+
[root@localhost ~]# docker stop $(docker ps -a -q)
134+
[root@localhost ~]# docker rm $(docker ps -a -q)
135+
```
136+
137+
### 9. 删除镜像
138+
139+
```shell
140+
# 删除某个镜像
141+
[root@localhost ~]# docker rmi docker.io/mysql:5.6
142+
143+
# 删除所有镜像
144+
[root@localhost ~]# docker rmi $(docker images -q)
145+
146+
# 强制删除所有镜像
147+
[root@localhost ~]# docker rmi -f $(docker images -q)
148+
```
149+
150+
### 10. 删除虚悬镜像
151+
152+
我们在 build 镜像的过程中,可能会产生一些临时的不具有名称也没有作用的镜像他们的名称一般都是 `<none>` ,我们可以执行下面的命令将其清除掉:
153+
154+
```shell
155+
[root@localhost ~]# docker rmi $(docker images -f "dangling=true" -q)
156+
# 或者
157+
[root@localhost ~]# docker image prune -a -f
158+
```
159+
160+
### 11. 镜像导入与导出
161+
162+
保存镜像
163+
164+
```shell
165+
[root@localhost ~]# docker save a46c2a2722b9 > /var/docker/images_save/mysql.tar.gz
166+
```
167+
168+
加载镜像
169+
170+
```shell
171+
[root@localhost ~]# docker load -i /var/docker/images_save/mysql.tar.gz
172+
```
173+
174+
175+
176+
177+
178+
# 二、Docker File 镜像构建
179+
180+
# 三、Docker Compose
181+
182+
## docker-compose 命令安装
183+
184+
Docker-Compose 是一个部署多个容器的简单但是非常必要的工具.
185+
186+
安装 Docker-Compose 之前,请先安装 python-pip
187+
188+
### 1. 安装 python-pip
189+
190+
1. 首先检查 Linux 有没有安装 python-pip 包,终端执行 pip -v
191+
192+
```shell
193+
[root@localhost ~]# pip -V
194+
-bash: pip: command not found
195+
```
196+
197+
2. 没有 python-pip 包就执行命令
198+
199+
```shell
200+
[root@localhost ~]# yum -y install epel-release
201+
```
202+
203+
3. 执行成功之后,再次执行
204+
205+
```shell
206+
[root@localhost ~]# yum -y install python-pip
207+
```
208+
209+
4. 对安装好的 pip 进行升级
210+
211+
```shell
212+
[root@localhost ~]# pip install --upgrade pip
213+
```
214+
215+
### 2. 安装 Docker-Compose
216+
217+
1. 终端执行
218+
219+
```shell
220+
[root@localhost ~]# pip install docker-compose
221+
```
222+
223+
2. 检查 docker-compose 安装
224+
225+
```shell
226+
[root@localhost ~]# docker-compose -version
227+
```
228+
229+
参考资料:
230+
231+
- [CentOS7下安装Docker-Compose - YatHo - 博客园](https://www.cnblogs.com/YatHo/p/7815400.html)
232+
233+
## docker-compose.yml 规范
234+
235+
236+
237+
238+
239+
# 四、Docker 实战
240+
241+
## 实战1:快速搭建 MySQL
242+
243+
- 官方镜像仓库
244+
245+
[https://hub.docker.com/_/mysql/](https://hub.docker.com/_/mysql/)
246+
247+
- docker-compose.yml
248+
249+
```yml
250+
version: '3.1'
251+
services:
252+
mysql:
253+
restart: always
254+
image: mysql:5.6
255+
container_name: mysql
256+
ports:
257+
- 3306:3306
258+
environment:
259+
TZ: Asia/Shanghai
260+
MYSQL_ROOT_PASSWORD: 123456
261+
command:
262+
--character-set-server=utf8mb4
263+
--collation-server=utf8mb4_general_ci
264+
--explicit_defaults_for_timestamp=true
265+
--lower_case_table_names=1
266+
--max_allowed_packet=128M
267+
--sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO"
268+
volumes:
269+
- /usr/local/docker/mysql/mysql-data:/var/lib/mysql
270+
```
271+
272+
273+
274+
## 实战2:快速搭建 phpmyadmin
275+
276+
- 官方镜像仓库
277+
278+
[phpmyadmin/phpmyadmin](phpmyadmin/phpmyadmin)
279+
280+
- docker-compose.yml
281+
282+
```yml
283+
version: '3.1'
284+
services:
285+
phpmyadmin:
286+
image: phpmyadmin/phpmyadmin
287+
container_name: phpmyadmin
288+
environment:
289+
- PMA_ARBITRARY=1
290+
- PMA_HOST=120.92.17.12
291+
# - PMA_PORT=3306
292+
# - PMA_USER=xxx
293+
# - PMA_PASSWORD=xxx
294+
restart: always
295+
ports:
296+
- 6060:80
297+
volumes:
298+
- /sessions
299+
```
300+
301+
302+
303+
## Gitlab
304+
305+
```
306+
version: '3'
307+
services:
308+
web:
309+
image: 'twang2218/gitlab-ce-zh:10.5'
310+
restart: always
311+
hostname: '120.92.17.12'
312+
environment:
313+
TZ: 'Asia/Shanghai'
314+
GITLAB_OMNIBUS_CONFIG: |
315+
external_url 'http://120.92.17.12:3000'
316+
gitlab_rails['gitlab_shell_ssh_port'] = 2222
317+
unicorn['port'] = 8888
318+
nginx['listen_port'] = 3000
319+
ports:
320+
- '3000:3000'
321+
- '8443:443'
322+
- '2222:22'
323+
volumes:
324+
- /usr/local/docker/gitlab/config:/etc/gitlab
325+
- /usr/local/docker/gitlab/data:/var/opt/gitlab
326+
- /usr/local/docker/gitlab/logs:/var/log/gitlab
327+
```
328+
329+
330+
331+
# 参考资料
332+
333+
- [docker前后分离笔记 - 小翼的前端天地](https://my-fe.pub/post/docker-front-and-backend-separation.html#toc-619)

notes/assets/docker-cmd.png

851 KB
Loading

notes/分布式.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -538,6 +538,8 @@ PaaS 平台即服务
538538

539539
SaaS 软件即服务
540540

541+
542+
541543
BaaS 区块链即服务
542544

543545

notes/面试话术.md

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
一定要有效沟通,不要嬉皮笑脸,不要低人一等,人人平等,双向选择。
44

5+
一定要记得放慢语速!回答问题前要思考几秒钟!
6+
57

68

79
## 面试官:你还有什么问题吗?/ 我:我可以问些问题吗?
@@ -44,8 +46,6 @@
4446

4547
面试官你好,我叫 Frank,应聘的是应用开发(Java方向)
4648

47-
48-
4949
1. **你觉得你的优势是什么**
5050

5151
用技术解决问题,产品思维,提高效率,解放生产力。举例:投票系统,考勤项目
@@ -93,8 +93,6 @@
9393

9494

9595

96-
97-
9896
## 结尾总结
9997

10098
到了结尾的话说一下自己都能解决问题,表达自己的能力ok!

0 commit comments

Comments
 (0)