首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场

docker

作者头像
张哥编程
发布2024-12-13 16:02:50
发布2024-12-13 16:02:50
14800
举报
文章被收录于专栏:云计算linux云计算linux
运行总次数:0

Docker学习笔记

一.Docker 的概念

  • Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源。Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口,更重要的是容器性能开销极低。
  • Docker支持将软件编译成一个镜像;然后在镜像中各种软件做好配置,将镜像发布出去,其他使用者可以直接使用这个镜像。运行中的这个镜像称为容器,容器启动是非常快速的。类似windows里面的ghost操作系统,安装好后什么都有
docker_docker
docker_docker

1.核心概念

docker主机(Host):安装了Docker程序的机器(Docker直接安装在操作系统之上);

docker客户端(Client):连接docker主机进行操作;

docker仓库(Registry):用来保存各种打包好的软件镜像;

docker镜像(Images):软件打包好的镜像;放在docker仓库中;

docker容器(Container):镜像启动后的实例称为一个容器;容器是独立运行的一个或一组应用

2.使用Docker的步骤:

1)、安装Docker

2)、去Docker仓库找到这个软件对应的镜像;

3)、使用Docker运行这个镜像,这个镜像就会生成一个Docker容器;

4)、对容器的启动停止就是对软件的启动停止;

我的tomcat 阿里云镜像,比163,的快不知道多少倍,163的能累死你!!!

代码语言:javascript
代码运行次数:0
运行
复制
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://g1p7lcm3.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

二.Docker命令

2.1镜像命令

docker images

查看所有镜像;

docker ps 查看容器

docker stop 、`docker ps -aq`

代码语言:javascript
代码运行次数:0
运行
复制
docker stop ID

停止镜像

docker rm `docker ps -aq`

代码语言:javascript
代码运行次数:0
运行
复制
docker rm ID

三.部署tomcat

3.1 拉tomcat

docker pull tomcat:8.0.52

这个问题最少,里面的webapps直接包含内容,其他的9.0还需要继续拷贝内容到webapps下。

3.2 直接运行

docker run -d -p 8888:8080 --name tomcat8888 tomcat:8.0.52

3.3 查看效果

以下是9.0的安装:

不信可以看下啊:

那咋回事类???

进入到镜像看下:

docker exec -it tomcat250 /bin/bash

cd webapps

然后ls一下,会发现没有东西哦,因为被精简掉了,是不是很抓狂哦!!!气死你:)

咋办?

cd webapps.dist东西都在它下面

回到tomcat目录

使用: cp -r webapps.dist/* webapps即可。

然后,浏览器再查看,发现OK了!!!

知道咋回事了吧!!!

四.安装mysql

1.查找mysql镜像

docker search mysql

2.docker pull mysql:latest

3.查看本地镜像

docker images

4.一般来说数据库容器不需要建立目录映射

代码语言:javascript
代码运行次数:0
运行
复制
docker run -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7

建立目录映射

代码语言:javascript
代码运行次数:0
运行
复制
duso docker run -p 3306:3306 --name mysql \
-v /usr/local/docker/mysql/conf:/etc/mysql \
-v /usr/local/docker/mysql/logs:/var/log/mysql \
-v /usr/local/docker/mysql/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
-d mysql:5.7

5.查看容器是否正确运行

代码语言:javascript
代码运行次数:0
运行
复制
docker container ls

6.进入到docker连接mysql

代码语言:javascript
代码运行次数:0
运行
复制
docker exec -it mysql bash

7.连接mysql

mysql -h localhost -u root -p

或者:

mysql -uroot -proot

五.安装Nginx的镜像

1.查找nginx镜像

docker search nginx

2.获取最新镜像

docker pull nginx:latest

3.查看本地镜像

docker images

4.运行容器

docker run -di --name=mynginx -p 9080:80 nginx

5.安装成功

6.将webapps下的mi文件夹改名一下:

mv mi html

7.将该目录复制到nginx下

docker cp html mynginx:/usr/share/nginx/

替换掉nginx原来下面的html目录。效果如下:

六.安装redis

6.1 拉过来

docker pull redis

6.2 进到redis-cli下

redis-cli -h 192.168.80.230回车

6.3 测试

set name zhangchen

get name

七.DockerFile

官方文档:

代码语言:javascript
代码运行次数:0
运行
复制
ADD centos-7-x86_64-docker.tar.xz /

LABEL \
    org.label-schema.schema-version="1.0" \
    org.label-schema.name="CentOS Base Image" \
    org.label-schema.vendor="CentOS" \
    org.label-schema.license="GPLv2" \
    org.label-schema.build-date="20200504" \
    org.opencontainers.image.title="CentOS Base Image" \
    org.opencontainers.image.vendor="CentOS" \
    org.opencontainers.image.licenses="GPL-2.0-only" \
    org.opencontainers.image.created="2020-05-04 00:00:00+01:00"

CMD ["/bin/bash"]

自己构建的docker file文件

代码语言:javascript
代码运行次数:0
运行
复制
FROM centos
MAINTAINER zhangchen<83193980@qq.com>

ENV MYPATH /usr/local
WORKDIR $MYPATH

RUN yum -y install vim
RUN yum -y install net-tools

EXPOSE 80

CMD echo $MAPATH
CMD echo "----end mycentos---"
CMD /bin/bash

运行:

代码语言:javascript
代码运行次数:0
运行
复制
docker build -f mycentos -t mycent:0.1 .

八.CMD和EntryPoint的区别

vim cmdfile

FROM centos

CMD [“ls”,“-a”] #但不列出 “.” (目前目录) 及 “…” (父目录)

然后

docker build -f cmdfile -t cmdfile .

生成镜像;

这个是成功的镜像id b8a23ce1cde1

再添加一个-l参数;-l命令查看某一个目录会得到一个7个字段的列表

docker run b8a23ce1cde1 -l

链图片转存中…(img-cTTSHcwk-1679417318859)]

八.CMD和EntryPoint的区别

vim cmdfile

FROM centos

CMD [“ls”,“-a”] #但不列出 “.” (目前目录) 及 “…” (父目录)

然后

docker build -f cmdfile -t cmdfile .

生成镜像;

这个是成功的镜像id b8a23ce1cde1

再添加一个-l参数;-l命令查看某一个目录会得到一个7个字段的列表

docker run b8a23ce1cde1 -l

会发现报错;

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-04-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Docker学习笔记
  • 一.Docker 的概念
    • 1.核心概念
    • 2.使用Docker的步骤:
  • 二.Docker命令
    • 2.1镜像命令
  • 三.部署tomcat
    • 3.1 拉tomcat
    • 3.2 直接运行
    • 3.3 查看效果
  • 四.安装mysql
  • 五.安装Nginx的镜像
  • 六.安装redis
    • 6.1 拉过来
    • 6.2 进到redis-cli下
    • 6.3 测试
  • 七.DockerFile
  • 八.CMD和EntryPoint的区别
  • 八.CMD和EntryPoint的区别
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档