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上面查看是否我们需要的软件以及版本
我们以阿里云镜像加速器为例讲解
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.创建构建文件
首先通过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