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
| # docker run --name 容器名 -i -t -p 主机端口:容器端口 -d -v 主机目录:容器目录:ro ImageId或者镜像名:TAG
# --name 指定容器名称 # -i 以交互模式运行容器 # -t 分配一个伪终端,通常 -it组合 # -p 指定映射端口,将主机端口映射到容器端口 # -d 后台运行 # -v 指定挂载主机目录到容器目录,默认为rw读写模式,ro表示只读
# docker ps -a -q # docker ps 查看正在运行的容器 # -a 查看所有容器(包括未运行的) # -q 只查看容器的ID
# docker stop 容器ID或容器名
# docker kill 容器ID
# docker rm -f 容器ID或容器名 # -f 表示强制删除
# docker logs 容器ID或容器名
# docker exec -it 容器ID或容器名 bash # 进入正在运行的容器并且开启交互模式终端 # bash是固有写法,也可以只写 /bin/bash
# whereis nginx #找到nginx位置
# exit #容器直接退出 ctrl +P +Q #容器不停止退出 ---注意:这个很有用的操作
# docker cp 主机文件路径 容器ID或容器名:容器路径 #主机中文件拷贝到容器中 docker cp 容器ID或容器名:容器路径 主机文件路径 #容器中文件拷贝到主机中
# docker top 容器id
# 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
|