Docker安装与初次使用

Docker的安装与初次使用

这几天一直在搞爬虫,偶尔发现一篇帖子发现scrapy可以在Docker里面运行,太好了!正好让我们的spring程序和爬虫相辅相成一起运行,然后让自己的网站变得更好[幻想ing....]

好了,废话不多说了,本来这个就很简单的,一会还要写另一篇爬虫文章。

说一下我的Linux环境是centos7 docker的内置环境是centos6.5

安装命令

首先安装yum-utils

yum install -y yum-utils

然后添加阿里云镜像

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

最后下载docker-ce

yum install docker-ce

安装完成!

开启开机自启

systemctl start docker

nginx的使用

# 细心的你一定会发现,凡是下载命令一定pull,运行命令一定是run
docker pull nginx #下载nginx
#  -d 后台 -p 指定端口
docker run -d -p 80:80 nginx

访问本机端口 localhost:8080,看到nginx的欢迎界面,安装完成!

tomcat的使用

由于我的项目是jar包格式,所以这里的tomcat只是凑字数的,目的只是看一下怎么样下载镜像和启动

docker pull tomcat
# 以my_tomcat的名称启动
docker run -d -p 8080:8080 --name my_tomcat tomcat

访问本机端口 localhost:8080,看到tomcat的欢迎界面,安装完成!

mysql的使用

这里要说一下由于本人用的是mysql5.6的,而最新的mysql是8.x。我的tomcat会出现连接不上的状况,这是因为8.x的连接算法做出了更改。 所以为了方便,我的服务器下载的是mysql5.6的


docker pull  mysql:5.6

# 这里是密码为xxx的root的mysql开启方法
docker run -d -p 3306:3306 - v /usr/local/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=xxx mysql

下面介绍一下-v 和 -e 的作用,首先你可以想象这些容器启动后都是缓存到一个内存里面{这里只是方便大家理解才说是内存中,大家不要误解},当你关闭之后或者重启里面的数据都会消失。说的高大上一点就是无所做数据持久化,那个-v这个参数就出来了,他是以':'分隔,其实只要记住':',所有参数:左边的都是值得你的物理主机[也就是宿主机],而右边的就是你的容器。上面的意思就是将本层目录下面的data文件夹来存mysql数据表,启动完是这样的。

redis的使用

当你的访问量上去的时候,缓存也是必须要上的,不然给数据库的压力是相当的大。

docker pull redis

这里需要说一下,docker的容器运行必须是要有一个前台程序的,不能所有的进程都是守护态。 因为我没有搞懂这个,所以一开始我的redis是一直起来就停止了。

如果对于redis不太了解的话可以看一下这里centos下安装redis

docker常用的命令

看到这里你可能对镜像[image]和容器[container]有了一定的理解,镜像你可以想象成安装包,而容器就是安装包安装完的软件。如果我没有记错的话,一个安装包是可以安装很多此软件的。 同样的容器和镜像也是这样,镜像只能有一个版本的(但是不同版本的可以共存)。而容器就可以启动很多了,只要你的端口不冲突,随便起。

而且docker也有一个特点就是,每一个容器都是一个冲突域[如果你学了计算机网络,那么冲突域一定不陌生]。这个意思就是说,即使你们容器内部端口一样,只要你们的宿主机端口不一致就好。

那么,我们下面开始讲解一下docker的常用命令。

下载镜像

docker run xxx:xxx

查看所有镜像


docker image ls

删除镜像

docker rmi xxx

删除无用镜像

为什么会有这个呢,是因为当你不小心删除了一个有容器且正在运行的镜像的时候,会留下一个名字为的镜像保证当前的容器的正常运行。可是有的时候我们还需要删掉这些来减轻我们的强迫症和空间


docker image prune

启动容器

docker run -d -p xxx:xxx -e xx  -v xx:xx --name xxx

停止容器

docker stop xxx

删除容器

docker rm xxx

查看当前docker进程


docker ps -a

进入容器内部


docker exec -it xxx
posted @ 2021-01-21 18:40  逝痕枫舞  阅读(73)  评论(0编辑  收藏  举报