docker安装与使用

一、安装
 1、官网:www.docker.com  
注册账号,下载docker desktop for windows
官网下载很慢,可以上百度搜索下载。
按提示安装docker desktop 2.0.0.3,并重启计算机。
安装完双击启动,提示haper V启用,重启计算机。
进入cmd,输入:docker version命令,查看版本,说明安装成功。
输入:docker pull hello-world命令,拉取hello-world映像文件。
输入:docker run hello-world命令,运行映像到容器。
hub.docker.com网址里可以查看映像文件,搜索tomcat,第一个就是官网提供的映像。
www.aliyun.com提供映像加速服务,登录阿里云账号,搜索“镜像加速服务”,第一个点击进去,官方镜像加速,容器镜像服务控制台,左侧菜单点击镜像加速器,复制加速器地址。
右击桌面右下角docker图标,选择settings,选择deamon,在Registry mirrors:里粘贴加速器地址,点击apply。自动重启docker服务。

2、linux安装
sudo yum install -y yum-utils device-mapper-persistent-data lvm2  下载所需组件
sudo yum-config-manager  --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo ; 指定阿里下载仓库
sudo yum makecache fast 更新仓库源信息
sudo yum -y install docker-ce  下载docker
sudo service docker start  服务化docker
service docker start 启动docker
docker version  查看版本,测试是否安装成功。
docker pull hello-world  拉取测试镜像
docker run hello-world 运行测试镜像

二、下载运行镜像文件
重启docker后,输入:docker pull tomcat 命令,拉取 tomcat 映像。
docker images命令:列出已经下载的image文件。
docker run -p 8000:8080 tomcat 运行镜像到容器。提示 tomcat运行成功。
输入docker ps 可以查看容器的id
在浏览器访问:localhost:8000,应该可以看到tomcat 默认界面。

如果访问出现404错误,输入: docker exec -it 容器的id /bin/bash,进入容器里的linux命令提示符。
删除tomcat里的webapps路径,并把webapps.dist修改为webapps.
ls:查看路径内的文件,
rm -rf webapps 删除webapps路径,
mv webapps.dist webapps 修改webapps.dist为webapps,
再次访问localhost:8000就可以看到 tomcat默认界面了。
docker stop 容器的id 命令可以停止容器运行。
docker restart 容器的id 命令可以重新运行容器。

docker run  -p 8001:8080 tomcat 使用同一个映像启动另一个容器。此时一台服务器上同时运行两个tomcat。

docker stop 容器的id : 停止运行容器。
docker rm 容器的id :移除容器。
docker images 查看镜像的id
docker rmi 镜像的id 删除镜像文件

可以运行两个mysql:
service docker start
docker pull mysql:5.7
docker run -p 3310:3306 -e MYSQL_ROOT_PASSWORD=root mysql:5.7
docker run -p 3311:3306 -e MYSQL_ROOT_PASSWORD=root mysql:5.7

三、利用Dockerfile 构建自定义镜像:
1、在D:\docktest1 路径下新建路径:docker-web,里边放入自己的项目文件。
在D:\docktest1 路径下新建Dockerfile 文件,编辑内容:
FROM tomcat:latest
WORKDIR /usr/local/tomcat/webapps
ADD docker-web ./docker-web

回到cmd提示符,执行:docker build -t myweb:1.0 D:\docktest1  构建本地镜像文件。
执行docker images查看镜像文件,多了一个myweb镜像。
要运行这个镜像,执行:docker run -p 8001:8080 myweb:1.0
执行:docker ps 查看容器。
执行:docker exec -it 容器的id /bin/bash
cd docker-web
ls  查看路径内的文件,项目文件已经复制到了里边。
exit 退出容器回到cmd提示符。

打开浏览器访问:localhost:8001 可以看到项目页面。

docker history 镜像的id 查看构建镜像执行的命令。

2、在D:\docktest1 路径下新建init.sql
create database test_db;
use test_db;
…建表sql,添加记录sql
cmd命令提示符:docker pull mysql:5.7

在D:\docktest1 路径下新建Dockerfile,内容如下:
from mysql:5.7
workdir /docker-entrypoint-initdb.d
add init.sql .

cmd命令提示符:docker build -t mydb D:\docktest2

docker run -p 3310:3306 -e MYSQL_ROOT_PASSWORD=root mydb

输入:netstat -ano查看端口3310是否存在。

四、发布镜像文件到hub.docker.com
生产自己的镜像文件:docker build -t 账号/仓库名:版本名 本地路径
docker build -t 15590677998/mysql-wlq:1.0 D:\docktest2
cmd  命令提示符下输入:docker login
输入用户名,密码
输入命令:docker push 账号/仓库名:版本名
docker push 15590677998/mysql-wlq:1.0
回到hub.docker.com网站刷新可以看到自己提交的镜像文件了。
可以修改描述,提交保存。
docker rmi -f 镜像id      命令强制删除镜像文件。
可以使用docker pull 15590677998/mysql-wlq:1.0  命令下载自己的镜像文件。
docker run 15590677998/mysql-wlq:1.0  运行自己的镜像文件。

五、构建redis镜像
准备:
下载 redis-6.0.6.tar.gz

redis7000.conf文件,内容如下:
port 7000
bind 0.0.0.0

Dockerfile内容:
from centos
run yum install -y gcc gcc-c++ net-tools make
workdir /usr/local
add redis-6.0.6.tar.gz .
workdir /usr/local/redis-6.0.6/src
run make && make install
workdir /usr/local/redis-6.0.6/
add redis7000.conf .
expose 7000
cmd [“redis-server”,“redis7000.conf”]

都放在D:\docktest3

cmd执行:docker build -t myredis D:\docktest3
构建镜像文件

docker run -p 7005:7000 myredis  容器运行镜像文件。
也可以docker run -p 7005:7000 -d myredis  后台运行镜像文件,直接返回提示符输入状态。

通过rdm客户端连接redis的7005端口,查看运行是否成功。

六、容器间通过link单向通信
docker run --name mydb centos sleep 1d  创建一个容器,运行centos 镜像,睡眠1天,等待不回到命令行。
ctrl+c退出等待,docker inspect 容器id 命令查看容器信息
networks:
bridge:
ipaddress:172.17.0.2
查看到该容器的ip

docker run --name myweb -d centos sleep 1d  创建另一个容器,后台运行,退回到命令行。
docker ps  查看容器
docker inspect 查看第二个容器ip
networks:
bridge:
ipaddress:172.17.0.3
查看到该容器的ip

进入myweb容器:docker exec -it 容器id /bin/bash
ping mydb容器的ip:ping 172.17.0.2
可以ping通容器。但是通过ip访问不推荐,推荐使用link方式。

docker rm -f myweb的容器id  强制删除myweb的容器
docker run --name myweb --link mydb -d centos sleep 1d   通过link 方式myweb连接到mydb容器
docker exec -it myweb容器id /bin/bash  进入myweb容器
ping mydb 可以ping通mydb容器
如果进入mydb容器,则无法ping通myweb容器。因为link 是单向的。
docker run --name webapp --link db tomcat  实际部署项目时的命令参考。

七、利用bridge双向通信
docker network ls  查看网络连接
docker network create -d bridge my-bridge  创建自己的bridge,my-bridge是名字,可以自己指定。
docker run --name c1 -d centos sleep 1d 创建一个容器c1
docker run --name c2 -d centos sleep 1d 创建一个容器c2
此时两个容器无法互联通信,需要通过网桥才能双向通信。
docker network connect my-bridge c1   容器c1加入自定义网桥
docker network connect my-bridge c2   容器c2加入自定义网桥
docker inspect 容器id  查看容器的网络状态,可以看到绑定的网桥。
例如:c1绑定的my-bridge IP为: 172.18.0.3
c2绑定的my-bridge IP为: 172.18.0.2
docker exec -it 容器的id /bin/bash  进入c1容器
ping c2  可以ping通
exit
docker exec -it 容器的id /bin/bash  进入c2容器
ping c1  可以ping通
exit

八、valume数据共享
在D:\docktest4下新建一个index.html文件
在docker右下角图标上右击选择setting,选择shared drives ,勾选 D:盘,点击apply.
docker run -p 8080:8080 --name tomcat1 -v D:\docktest4:/usr/local/tomcat/webapps tomcat  挂载主机目录到容器中。
每一个容器都挂载太麻烦,可以挂载到一个容器。
docker create --name webpage -v D:\docktest4:/usr/local/tomcat/webapps tomcat /bin/true 创建挂载到webpage容器
docker run -p 8001:8080 --volumes-from webpage --name tomcat1 -d tomcat  运行tomcat1容器
docker run -p 8002:8080 --volumes-from webpage --name tomcat2 -d tomcat  运行tomcat2容器
docker run -p 8003:8080 --volumes-from webpage --name tomcat3 -d tomcat  运行tomcat3容器
然后通过浏览器访问:localhost:8001/myweb/
localhost:8002/myweb/
localhost:8003/myweb/
都可以看到index.html的内容。修改主机index.html文件,三个地址都可以看到变化。
docker inspect 容器id 可以看到mounts节点里边的挂载信息。

创建Dockerfile自动挂载本地文件:
在D:\setup\java\docker\docktest5下创建Dockerfile文件,内容:
from tomcat 
volume “/usr/local/tomcat/webapps”

命令提示符输入:docker build -t myvolume D:\setup\java\docker\docktest5
docker run -d myvolume  运行容器
docker ps 查看容器编号
docker inspect 容器编号 ,查看容器信息,mounts查看挂载信息
这里挂载的目录是docker指定的,如果想指定本地磁盘路径,仍然要用 docker run -p 8080:8080 --name tomcat1 -v 本地路径  这种形式。

九、单机容器编排工具docker compose
windows上自带docker compose,linux系统需要单独安装docker compose。
新建路径D:\setup\java\docker\docktest6
创建docker-compose.yml文件
内容如下:
version: ‘3.3’

services:
   db:
     image: mysql:5.7
     volumes:
       - db_data:/var/lib/mysql
     restart: always
     environment:
       MYSQL_ROOT_PASSWORD: somewordpress
       MYSQL_DATABASE: wordpress
       MYSQL_USER: wordpress
       MYSQL_PASSWORD: wordpress

wordpress:
     depends_on:
       - db
     image: wordpress:latest
     ports:
       - “8000:80”
     restart: always
     environment:
       WORDPRESS_DB_HOST: db:3306
       WORDPRESS_DB_USER: wordpress
       WORDPRESS_DB_PASSWORD: wordpress
       WORDPRESS_DB_NAME: wordpress
volumes:
    db_data: {}

命令提示符输入:d:
cd D:\setup\java\docker\docktest6
docker-compose up -d  自动运行部署wordpress项目
完成后访问:localhost:8000  界面就出来了。
选择语言:简体中文,填写网站信息与用户信息,登录网站。

如果要移除项目使用:docker-compose down --volumes 命令。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

三江831

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

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

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

打赏作者

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

抵扣说明:

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

余额充值