1.Dokcer安装

我使用的是MacOS 10.13版本,通过docker官网下载的docker desktop提示不支持我的系统,因为我的系统太旧了。

因此尝试使用Homebrew来安装,经过一番波折,最终安装成功。安装方式如下:

 

1.1安装或更新Homebrew

首先安装或更新Homebrew,我运行:

brew update

提示无法连接:Failed to connect to raw.githubusercontent.com port 443: Connection refused

尝试了几种网上提供的方案都无法解决,于是使用Gitee重新安装Homebrew,参考地址:https://gitee.com/cunkai/HomebrewCN

运行脚本:

/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"

会重新安装Homebrew,并把原来的文件备份到桌面上(起一个名为"Old_Homebrew"的文件夹)。

经过这一番折腾,Homebrew总算可以正常使用了。

 

1.2使用Homebrew下载并安装docker desktop

下面使用Homebrew Cask来安装dokcer,命令如下:

brew cask install docker

下载,安装需要等待一段时间。安装完毕后,系统应用中就有了docker desktop应用程序。

在终端运行查看docker版本的命令:

docker -v

得到信息为:Docker version 20.10.0, build 7287ab3

 

补充:Ubuntu 18.04系统安装docker的命令:

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

安装过程大概需要1、2分钟。安装完毕后运行查看docker版本的命令docker -v:

得到信息为:Docker version 20.10.10, build b485636

 

至此,两种操作系统的docker安装成功。

 

2.docker启动与关闭(ubuntu)

启动dokcer服务:

sudo service docker start

 

停止docker服务:

sudo service docker stop

 

重启docker服务:

sudo service docker restart

 

测试docker服务:

docker run hello-world

 

3、中央仓库

docker官方中央仓库:https://hub.docker.com/

doaCloud仓库:http://hub.daocloud.io/

配置国内镜像:

# 编辑daemon.json文件,文件不存在则新建
sudo vim /etc/docker/daemon.json

# 在daemon.json文件中配置网易云地址
# 阿里云需要注册云账户
# 中科大速度较慢,且部分docker镜像会安装失败
# 七牛的速度也较慢
# 综上:选择网易云镜像地址
# 注意事项: 请将https改为http,由于https含有ssl加密机制,所以http速度能快些

{"registry-mirrors":["http://hub-mirror.c.163.com/"]}

# 重新加载daemon文件
sudo systemctl daemon-reload

# 重启docker服务
sudo systemctl restart docker.service

# 查看是否配置成功
sudo docker info

 

4、docker命令

4.1镜像相关命令:

当运行容器时,使用的镜像如果在本地中不存在,docker 就会自动从 docker 镜像仓库中下载,默认是从 Docker Hub 公共镜像源下载。

本文下载镜像使用http://hub.daocloud.io/下载镜像。

(1)下载镜像:

docker pull ubuntu:13.10

命令解释:镜像名称:版本号,如果不采用默认的镜像站点,而是指定镜像(daocloud镜像源),可以使用如下格式:

docker pull daocloud.io/library/tomcat:8.5.15-jre8

 

 (2)列出镜像列表:

docker images

 

(3)删除镜像:

docker rmi 镜像id(IMAGE ID)

 

(4)镜像导入/导出:

将本地镜像导出:

#导出
docker save -o 导出路径 镜像id

#导入
dokcer load -i 导入路径

#修改镜像名称(NAME)和版本(TAG)
docker tag 镜像id 名称:版本

 

4.2容器相关命令:

容器就是运行起来的镜像,我个人将其理解为为镜像文件创建了一个虚拟光驱。(一个镜像文件可以创建多个虚拟光驱)

(1)运行容器:

#简单命令
docker run 镜像id|镜像名称[:版本]

#常用参数
docker run -d -p 80:80 docker/getting-started
docker run -d -p 9000:8080 --name tomcat b8dfe9ade316

 命令解释:

-d:后台执行,

-p:指定端口 宿主机端口:容器端口。

详细说明9000是安装docker镜像和容器的[物理]机器的端口,也是外部访问的端口,可以任意修改。

8080是docker内部的端口,比如tomcat的默认端口是8080,不能随意修改,否则就无法访问。

--name:容器名称,

-i :交互式操作,

-t:终端

/bin/bash:进入容器的bash

 

(2)查看容器列表:

docker ps [-aq]

命令解释:

默认无参数:列出所有运行的容器

-a:列出所有容器,包括没运行的

-q:只列出容器id

 

(3)查看容器日志:

docker logs -f 容器id

名称解释:

-f:滚动查看日志最后内容

 

(4)进入到容器内部:

docker exec -it 容器id /bin/bash

 

(5)删除容器:(删除容器之前需要先停止容器)

#停止容器
dokcer stop 容器id

#停止全部容器
docker stop $(docker ps -qa)

#删除指定容器
docker rm 容器id

#删除全部容器
docker rm $(docker ps -qa)

 

(6)启动容器:

docker start 容器id

 

(7)将宿主机的文件复制到容器内:

docker cp 宿主机文件路径 容器id:容器内部文件路径

 

(8)数据卷Volume:将宿主机的目录映射到容器中的目录中,可以在宿主机中直接管理容器中的文件

创建数据卷:

docker volume create 数据卷名称
#创建数据卷之后,默认会存放在: /var/lib/docker/volumes/数据卷名称/_data

查看数据卷信息:

docker volume inspect 数据卷名称

查看全部数据卷:

docket volume ls

删除数据卷:

docker volume rm 数据卷名称

数据卷的使用:

#当映射数据卷时,如果原来不存在,则会自动创建
docker run -v 数据卷名称:容器内路径 镜像id

#指定一个路径作为数据卷的存放位置
docker run -v 宿主机路径:容器内路径 镜像id

 

5、实际操作

5.1 下载并运行一个mysql镜像:

docker run -d -p 3307:3306 --name mysql -e MYSQL_ROOT_PASSWORD=root daocloud.io/library/mysql:5.7.4

可以使用宿主机ip:3307端口访问到这个docker内部的数据库,并设置其root账户的密码为root。

 

5.2 将一个Spring MVC的war包项目部署到docker中的tomcat下:

docker cp MVCDemo.war 74:/usr/local/tomcat/webapps/

访问地址为:http://xxxx:9000/MVCDemo/

 

5.3 启动一个tomcat,并指定数据卷

docker run -d -p 9000:8080 --name tomcat -v tomcat_volume:/usr/local/tomcat/webapps b8dfe9ade316

这样只需修改宿主机下/var/lib/docker/volumes/tomcat_volume/_data/ 目录下的文件,即可管理docker容器内tomcat下的war包。

posted on 2020-12-18 12:00  Sempron2800+  阅读(308)  评论(0编辑  收藏  举报