Docker容器学习笔记

GA666666 2021-06-19 PM 76℃ 1条

Docker

一、安装、启动、配置

1.安装

网上有较多教程,我的安装windows版本没有成功,直接在云服务器中安装了docker

设置aliyun镜像

sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker

查看是否安装成功:输入docker会输出帮助信息

[root@VM-16-6-centos ~]# docker

Usage:  docker [OPTIONS] COMMAND

A self-sufficient runtime for containers

Options:
      --config string      Location of client config files (default "/root/.docker")
  -c, --context string     Name of the context to use to connect to the daemon (overrides DOCKER_HOST env var and default
                           context set with "docker context use")
  -D, --debug              Enable debug mode
  -H, --host list          Daemon socket(s) to connect to
  -l, --log-level string   Set the logging level ("debug"|"info"|"warn"|"error"|"fatal") (default "info")
      --tls                Use TLS; implied by --tlsverify
      --tlscacert string   Trust certs signed only by this CA (default "/root/.docker/ca.pem")
      --tlscert string     Path to TLS certificate file (default "/root/.docker/cert.pem")
      --tlskey string      Path to TLS key file (default "/root/.docker/key.pem")
      --tlsverify          Use TLS and verify the remote
  -v, --version            Print version information and quit

2.启动

查看docker服务是否启动

systemctl status docker.service

启动docker服务

systemctl start docker

启动成功再次查看状态

关闭docker服务

systemctl stop docker

查看docker配置

docker info

测试是否安装成功

使用 docker pull hello- world: latest命令下载镜像到 docker

使用 docker run hello- world创建容器并且执行该程序

设置开机启动

使用命令配置开机启动

systemctl enable--now docker.service

systemctl enable--now docker.socket

二、Docker镜像加速配置

1.Docker Hub

我们可以从 Docker Hub直接下载镜像安装到一个容器里面。我们也可以上传镜像到Dockerhub,但是需要登录

我们可以在 docker hub上面查看是否我们需要的软件以及版本

网站为:https://hub.dockercom

我们以阿里云镜像加速器为例讲解

2.阿里云镜像加速

输入 docker info

可以看到镜像地址已经发生改变

三、Docker镜像操作

1.什么是Docker镜像

Docker镜像是由文件系统疊加而成(是一种文件的存储形式)。最底端是一个文件引导系统,即boos,这很像典型的 Linux/Umix的引导文件系统。 Docker I用户几乎永远不会和引导系统有什么交互。实际上,当一个容器启动后,它将会被移动到内存中,而引导文件系统则会被卸载,以留出更多的内存供磁盘镜像使用 Docker容器启动是需要一些文件的,而这些文件就可以称为 Docker镜像

2.拉取镜像

首先可以使用

docker search mysql

进行搜索

使用

docker pull mysql

进行拉取下来,这里要注意

使用docker pull 某个镜像时,如果不下版本号默认拉取最新版本,也就是等同于:docker pull mysql:latest

拉取某一版本

docker pull mysql:5.7

3.查看镜像

使用docker images 查看本地镜像

docker images

4.删除本地镜像

使用docker rmi + 镜像id 或者镜像名称 删除本地镜像

docker rmi 2c90288880e58docker rmi mysql:5.7

四、容器的创建及基本操作

1.容器的创建

docker create [options」镜像名字或者 ID [COMMAND[ARG...]
docker create-p 3306: 3306-name mysqi-e MYSQL ROOT PASSWORD=root mysql
docker create-p 3306: 3306--name mysql new-e MYSQL ROOT PASSWORD=root
-v /usr/local/docker/mysqldata: /var/lib/mysqlmysql

Docker create 参数 镜像

常用参数:

常用参数说明
-i: 以交互模式运行容器,通常与t连用
-t: 为容器重新分配个伪终端,通常与连用
-P: 随机端口映射
-p: 指定端口映射, hotpot: containerport
-e: 配置信息(配置 MYSQL的超级管理员密码)
-d: 后台执行(创建并启动时候)
-v: 主机和容器的目录映射关系,":"前为主机目录,之后为容器目录
--name: 给容器起一个新名字。为容器指定一个名称
--restart:设置是否重启容器自动启动,默认 no always:自动重启

比如:

docker create- name mysql -p 3306: 3306 -e MYSQL_ROOT_PASSWORD=root 镜像名称:版本号docker create -name mysql -p 3306: 3306 -e MYSQL_ROOT_PASSWORD=root mysql: latest

2.查看容器

使用docker container ls -a

docker container ls -a ##列出所有容器docker container ls    ##列出正在运行的容器docker ps              ##查看docker容器进程信息

3.启动容器

使用docker start mysql

docker start mysql

3.1强制停止容器

不推荐使用,容易造成容器服务不正常关闭,影响后续使用。

docker kill 容器ID或名称docker kill mysql

3.2暂停容器

docker pause 容器ID或名称docker pause mysql

3.3恢复容器

docker unpause 容器ID或名称docker unpause mysql

3.4删除容器

docker rm 容器ID或名称docker rm mysql

3.5查看容器日志

docker logs -f -t --tail行数容器IDdocker logs -f -t --tail 5 mysql-f参数代表长期监控日志数据-t额外增加时间戳--tail行数显示末尾多少行日志

3.6查看容器中运行的进程

docker top容器ID或名称docker top mysql

4.测试链接

使用链接软件进行链接

测试成功

5.容器目录映射

为了防止容器损坏导致数据丢失,可以将容器内产生数据的目录映射到宿主主机上

这就要用到上面提到的参数 -v

 -v:   主机和容器的目录映射关系,":"前为主机目录,之后为容器目录 -v 主机目录:容器目录##新建容器时docker create --name mysql -p 3333:3306 -e MYSQL_ROOT_PASSWORD=nishigepi \-v /usr/local/docker/mysql/data :var/lib/mysql --restart=always mysql:5.7

5.1容器文件的复制粘贴

1.从容器里面拷文件到宿主机

docker cp 容器名:要拷贝的文件在容器里面的路径 要拷贝到宿主机的相应路径

示例: 假设容器名为testtomcat,要从容器里面拷贝的文件路为:/usr/local/tomcat/webapps/test/js/test.js, 现在要将test.js从容器里面拷到宿主机的/opt路径下面

docker cp testtomcat:/usr/local/tomcat/webapps/test/js/test.js /opt
2.从宿主机拷文件到容器里面

docker cp 要拷贝的文件路径 容器名:要拷贝到容器里面对应的路径

示例:假设容器名为testtomcat,现在要将宿主机/opt/test.js文件拷贝到容器里面的/usr/local/tomcat/webapps/test/js路径下面

docker cp /opt/test.js testtomcat:/usr/local/tomcat/webapps/test/js

6.进入容器

使用 docker exec -it mysql /bin/bash/

##进入容器内部docker exec -it mysql /bin/bash##退出容器exit

7.快速创建并运行容器

使用docker run命令

docker run --name mysql -p 3333:3306 -e MYSQL_ROOT_PASSWORD=nishigepi \-v /usr/local/docker/mysql/data :var/lib/mysql -d --restart=always mysql:5.7        ##其他的都一样但是要加入 -d## -d : 后台模式## 不加-d 时阻塞模式,当前窗口不能输入其他命令了

8.与运行中的容器交互

查看容器中运行的进程
docker top容器ID或名称docker top mysql
查看容器内部详情
docker inspect容器D或名称docker inspect mysql
进入容器内部交互
docker exec[ options」容器ID[ commanddocker exec -it mysql /bin/bash                          -i:以交互模式运行容器,通常t连用t:为容器重新分配一个伪终端,通常与i连用 也就是上面的 -it

五、Docker File构建镜像

1.使用本地命令构建镜像

1.1.下载JDK镜像

docker pull openjdk

1.2.创建构建文件

  1. 首先通过vim命令创建一个构建文件

    vim buildfile
  2. 进入编辑界面进行配置编写

    FROM openjdk: latest//VOLUME /var/mydataADD springboot.jar spring.jarENRYP0INT["java", "-jar" ,"/spring.jar"]EXPOSE 8080
    • 第一句:指定基础镜像,这个需要根据自己配置的仓库上的版本写
    • 第二句:产生数据存储目录,暂时用不到
    • 第三句:指定源包,前者是你的jar包,后者是起的别名
    • 第四句:指定容器启动时执行的命令
    • 第五句:对外端口

    1.3构建镜像

    docker build -f 构建文件 -t 镜像名称:TAG 相对目录(如果是镜像构建当前目录就是点)
    docker build -f /root/docker/buildfile -t eureka: 1.0 .

    [root@localhost ~]# lsanaconda-ks.cfg  ROOT  springbootBuild  springboot.jar[root@localhost ~]# docker build -f springbootBuild -t springboot:1.0 .Sending build context to Docker daemon  16.54MBStep 1/4 : FROM openjdk:latest ---> de085dce79ffStep 2/4 : ADD springboot.jar spring.jar ---> dca62414cf7cStep 3/4 : ENTRYPOINT ["java","-jar","/spring.jar"] ---> Running in c3492b88c7cbRemoving intermediate container c3492b88c7cb ---> fd6d82e52febStep 4/4 : EXPOSE 8080 ---> Running in f4db54c6a0dfRemoving intermediate container f4db54c6a0df ---> b2f14342250bSuccessfully built b2f14342250bSuccessfully tagged springboot:1.0
  3. 构建成功后输入 docker images即可看到刚刚创建的 镜像

  4. 创建容器并运行

    docker run --name springboot -p 8080:8080 -d springboot:1.0
  5. 通过端口映射查看是否成功

## 6.IDEA构建镜像

### 1.

标签: none

非特殊说明,本博所有文章均为博主原创。

评论啦~



唉呀 ~ 仅有一条评论


  1. Marjorie Friese
    Marjorie Friese

    12 000 000 messages to the whole world - new marketing tool for your company.

    Steps to get it:
    1. Go to website https://search-any-web.com
    2. Register and login
    3. Do search and press "Send Messages"
    4. Sit back and relax, we will do the rest and send you report

    We have hudge database - more than 80 mil. websites. If you need something more - contact via email info@search-any-web.com

    Some screens - https://postimg.cc/gallery/2zhrCvt

    回复 2023-02-13 22:48