Docker的基本使用 -- 笔记

安装(我用的CentOS7)

以下方式安装的docker版本很低,不推荐。
yum install docker -y (如权限不够,命令前加sudo)

参考官方文档来安装:

sudo yum install -y yum-utils
sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

启动/停止服务

systemctl start docker

systemctl stop docker

systremctl restart docker

systemctl enable docker // 设置自启动

查看docker服务状态

systemctl status docker

ps -ef | grep docker 查看进程

docker info 查看docker系统信息

修改docker镜像源,解决国内拉取镜像慢的问题

https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors

基本操作

Docker并不是容器,而只是一个管理容器的引擎;
底层运行原理:
服务启动→下载镜像→启动该镜像得到一个容器→容器里运行着我们想要的程序

下载镜像

docker pull xxx

[root@192 ~]# docker pull tomcat
Using default tag: latest
Trying to pull repository docker.io/library/tomcat ...
latest: Pulling from docker.io/library/tomcat
0e29546d541c: Pull complete
9b829c73b52b: Pull complete
cb5b7ae36172: Pull complete
6494e4811622: Pull complete
668f6fcc5fa5: Pull complete
dc120c3e0290: Pull complete
8f7c0eebb7b1: Pull complete
77b694f83996: Pull complete
0f611256ec3a: Pull complete
4f25def12f23: Pull complete
Digest: sha256:9dee185c3b161cdfede1f5e35e8b56ebc9de88ed3a79526939701f3537a52324
Status: Downloaded newer image for docker.io/tomcat:latest

所有镜像可以在docker镜像仓库中查到 https://hub.docker.com/,未指定版本则默认下载最新版,也可以下载指定版本,比如docker pull tomcat:8.0.15-jre7

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IlVjjsMn-1679481236094)(C:\Users\kevin\AppData\Roaming\Typora\typora-user-images\image-20230322171510148.png)]

也可以使用命令搜索:

docker search tomcat

查看所有镜像

docker images

[root@192 ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
docker.io/tomcat    latest              fb5657adc892        15 months ago       680 MB

删除镜像

docker rmi xxx

docker rmi fb5657adc892

运行镜像,得到容器

docker run xxx

docker run docker.io/tomcat
或
docker run fb5657adc892
常用参数:
-d后台运行(一般都是需要加这个参数的)
-p将宿主机的ip映射到容器的ip端口
–name指定容器的名称
-e指定环境变量

示例:
开启tomcat容器

[root@192 ~]# docker run --name tomcat -d -p 8080:8080 docker.io/tomcat

开启mysql容器

[root@192 ~]# docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=a123 -d 3218b38490ce

这样在电脑上就可以通过8080端口访问tomcat了。(如果是用的虚拟机,访问地址应该用虚拟机的ip而不是localhost,比如http://192.168.32.128:8080/)

查看容器状态

docker ps 查看正在运行的容器

docker ps -a 查看所有

[root@192 ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                        PORTS               NAMES
c8ee73cd159a        docker.io/tomcat    "catalina.sh run"   22 minutes ago      Exited (130) 18 minutes ago                       epic_payne

[root@192 ~]# docker logs 6db93d85e362 查看容器运行log

停止容器

docker stop xxx

[root@192 ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                    NAMES
6db93d85e362        docker.io/tomcat    "catalina.sh run"   4 minutes ago       Up 4 minutes        0.0.0.0:8080->8080/tcp   suspicious_murdock
[root@192 ~]# docker stop 6db93d85e362
6db93d85e362

进入容器内部

docker exec -it fb5657adc892 bash

内部是个linux的文件系统

[root@192 ~]# docker exec -it c8ee73cd159a bash
root@c8ee73cd159a:/usr/local/tomcat#

exit退出

root@c8ee73cd159a:/usr/local/tomcat# exit
exit
[root@192 ~]#

启动已创建的容器

docker start xxx

[root@192 ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                        PORTS               NAMES
abdedbba7397        docker.io/tomcat    "catalina.sh run"   5 minutes ago       Exited (130) 2 minutes ago                        vibrant_edison
[root@192 ~]# docker start abdedbba7397

删除容器

docker rm xxx

[root@192 ~]# docker rm abdedbba7397

一条命令停用所有容器并且删除

docker stop $(docker ps -aq) & docker rm -f $(docker ps -aq)

[root@192 ~]# docker stop $(docker ps -aq) & docker rm -f  $(docker ps -aq)
[1] 3430
6db93d85e362
6db93d85e362
c8ee73cd159a
c8ee73cd159a
[1]+  Done                    docker stop $(docker ps -aq)
[root@192 ~]#

自定义镜像

Dockerfile文件,用于构建docker镜像;Docker是基于目录构建的。Dockerfile文件和jar包放到同一个目录下。

示例:

FROM openjdk:17
MAINTAINER someboby
ENV workdir=/root/docker/eureka-server
COPY . ${workdir}
WORKDIR ${workdir}
EXPOSE 8761
CMD ["java","-jar","Eureka-server-1.0.jar"]

执行 docker build ./eureka-server -t eureka-server:1.0

Docker指定
FROM基础镜像信息
MAINTAINER维护者信息
ENV环境变量
COPY复制
WORKDIR进入目录
EXPOSE容器暴露的端口号
CMD启动容器时执行的命令
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

懒 虫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值