Fork me on GitHub

BiuBiu

记录、学习、生活

0%

Docker基础(一)

Docker是开源的应用容器引擎,Docker改变了虚拟化的方式!

写在前面:本篇参考 柠乐博客

三大概念

  • 镜像:就像安装包一样的东西
  • 容器:Docker通过安装镜像生成的一个环境,就像应用多开一样,开启的应用环境一样的东西
  • 仓库:应用市场一样的东西

安装

docker在Ubuntu或者deepin里都可以采用一条命令安装

1
2
3
4
5
6
# 安装
apt install docker.io`
# 启动docker服务
systemctl start docker
# 查看是否成功
docker version

常用命令

1.帮助信息

1
2
3
docker version # 版本信息
docker info # 系统信息
docker 命令 --help # 帮助命令

2.镜像命令

1
2
3
4
docker images # 查看主机上的镜像
docker search nginx # 搜索镜像
docker pull nginx # 下载镜像
docker rmi nginx # 删除镜像

3.容器命令

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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
##1.运行容器
docker run --name 容器名 -i -t -p 主机端口:容器端口 -d -v 主机目录:容器目录:ro ImageId或者镜像名:TAG

# --name 指定容器名称
# -i 以交互模式运行容器
# -t 分配一个伪终端,通常 -it组合
# -p 指定映射端口,将主机端口映射到容器端口
# -d 后台运行
# -v 指定挂载主机目录到容器目录,默认为rw读写模式,ro表示只读


##2.查看容器
docker ps -a -q
# docker ps 查看正在运行的容器
# -a 查看所有容器(包括未运行的)
# -q 只查看容器的ID

##3.停止容器
docker stop 容器ID或容器名


##4.强制停止容器
docker kill 容器ID


##5.移除容器
docker rm -f 容器ID或容器名
# -f 表示强制删除


##6.查看日志
docker logs 容器ID或容器名


##7.进入正在运行容器
docker exec -it 容器ID或容器名 bash
# 进入正在运行的容器并且开启交互模式终端
# bash是固有写法,也可以只写 /bin/bash


##8.容器中搜索文件
whereis nginx #找到nginx位置


##9.退出容器
exit #容器直接退出
ctrl +P +Q #容器不停止退出 ---注意:这个很有用的操作


##10.拷贝文件
docker cp 主机文件路径 容器ID或容器名:容器路径 #主机中文件拷贝到容器中
docker cp 容器ID或容器名:容器路径 主机文件路径 #容器中文件拷贝到主机中


##11.查看容器中进程信息ps
docker top 容器id


##12.获取容器元信息
docker inspect 容器ID或容器名

Nginx小练习

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
#1. 搜索镜像 search 建议大家去docker搜索,可以看到帮助文档
docker search nginx

#2. 拉取下载镜像 pull
docker pull nginx

#3. 查看是否下载成功镜像
docker images

#3. 运行测试
# -d 后台运行
# --name 给容器命名
# -p 宿主机端口:容器内部端口
docker run -d --name nginx01 -p 3344:80 nginx

#4. 查看正在启动的镜像
docker ps

#5. 进入容器
docker exec -it nginx01 /bin/bash

#6.找到nginx位置
whereis nginx
# nginx: /usr/sbin/nginx /usr/lib/nginx /etc/nginx /usr/share/nginx

#7. 退出容器
exit

#8. 停止容器
docker stop aa664b0c8ed9

#9. 删除容器
docker rm nginx01

Tomcat小练习

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
#下载 最新版
docker pull tomcat

#查看下载的镜像
docker images

#以后台方式,暴露端口方式,启动运行
docker run -d -p 8080:8080 --name tomcat01 tomcat

#测试访问有没有问题
curl localhost:8080

#根据容器id进入tomcat容器
docker exec -it 645596565d3f /bin/bash

#查看tomcat容器内部内容:
root@645596565d3f:/usr/local/tomcat# ls -l


#进入webapps目录
# 发现问题:1、linux命令少了。 2.webapps目录为空
# 为了保证最小可运行的环境,其他都删了!
# 解决方案:
# 将webapps.dist下的文件都拷贝到webapps下即可

cp -r webapps.dist/* webapps # 拷贝webapps.dist 内容给webapps

#再次访问验证
curl localhost:8080
老铁,想请我喝哇哈哈嘛!![笑哭]