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 quit2.启动
查看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上面查看是否我们需要的软件以及版本
我们以阿里云镜像加速器为例讲解

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 mysql3.1强制停止容器
不推荐使用,容易造成容器服务不正常关闭,影响后续使用。
docker kill 容器ID或名称docker kill mysql3.2暂停容器
docker pause 容器ID或名称docker pause mysql3.3恢复容器
docker unpause 容器ID或名称docker unpause mysql3.4删除容器
docker rm 容器ID或名称docker rm mysql3.5查看容器日志
docker logs -f -t --tail行数容器IDdocker logs -f -t --tail 5 mysql-f参数代表长期监控日志数据-t额外增加时间戳--tail行数显示末尾多少行日志3.6查看容器中运行的进程
docker top容器ID或名称docker top mysql4.测试链接
使用链接软件进行链接

测试成功

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.75.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 /opt2.从宿主机拷文件到容器里面
docker cp 要拷贝的文件路径 容器名:要拷贝到容器里面对应的路径
示例:假设容器名为testtomcat,现在要将宿主机/opt/test.js文件拷贝到容器里面的/usr/local/tomcat/webapps/test/js路径下面
docker cp /opt/test.js testtomcat:/usr/local/tomcat/webapps/test/js6.进入容器
使用 docker exec -it mysql /bin/bash/
##进入容器内部docker exec -it mysql /bin/bash##退出容器exit7.快速创建并运行容器
使用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 openjdk1.2.创建构建文件
首先通过vim命令创建一个构建文件
vim buildfile进入编辑界面进行配置编写
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构建成功后输入 docker images即可看到刚刚创建的 镜像

创建容器并运行
docker run --name springboot -p 8080:8080 -d springboot:1.0通过端口映射查看是否成功

## 6.IDEA构建镜像
### 1.
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