原创 | 全网最实在的docker入门教程二

原创 | 全网最实在的docker入门教程二_第1张图片

作者:潘吉祥


接着上次,我们继续入门docker:

容器相关命令

创建容器:(实际上是有dockercreate方法的,这样就是创建一个容器,并不会运行,run相当于create+start,新版docker推荐使用run

docker run 

但我们并不直接这样使用,会跟着各种参数进行配合使用:

-i:表示创建并运行容器

-t:表示容器启动后会进入其命令行。通常于-i一起使用:-it表示创建并运行容器,且运行之后自动进入为当前应用打开一个默认终端,这么说比较苍白,看图吧:

原创 | 全网最实在的docker入门教程二_第2张图片

由图我们可以看到,相当于我们显示地运行了一台redis

--name :为创建的容器命名。

-v:表示目录映射关系(前者是宿主机目录,后者是映射到宿主机上的目录),可以使用多个-v做多个目录或文件映射。(这个可能有些人不太理解,在这里我先简单说一下,运行在容器内的应用我们无法修改它的配置文件,即时我们能够进入容器内部,也没有可编辑的命令工具,因此我们需要用到目录映射,把容器内的文件映射到宿主机上,这样修改宿主机上的文件就间接修改而来容器内部的文件,这在实际开发中式很常用的)。

-d:在run后面加上-d参数,则会创建一个守护式容器在后台运行,与-t相反。

 

-p:表示端口映射,前者是宿主机端口,后者是容器内的映射端口,程序访问是通过宿主机映射端口来访问容器的。可以使用多个-p做多个端口映射

1)交互式的方式创建容器:

docker run -it --name=容器名称镜像名称:标签 /bin/bash

效果如图:(为了效果,我使用了相同的name和镜像,docker是不能创建相同name的容器的,事实上我已经把上一个创建的容器删除了)

   

可以看出不同,这样的方式我们直接就进入了容器内部,@xxxxx即为创建的容器的id

那么怎么退出容器呢,不是Ctrl+c哦,是exit

2)既然有交互式,就有后台式,事实上我们常用后台式:

docker run -id --name=容器名称镜像名称:标签

   

如图所示创建成功之后没有进入容器内部。那么当我们想要进入容器内部怎么办呢?可以用下面的命令:

docker exec -it 容器名称(或者容器ID) /bin/bash

   

如图我们虽然以后台的方式启动容器,但是依然可以进入容器!

查看容器:

docker ps    查看正在运行的容器

docker ps –a  查看所有的容器

启动和停止容器:

docker stop 容器id或者容器名

docker start 容器id或者容器名

拷贝文件:

docker cp 需要拷贝的文件或目录容器名称:容器目录->把宿主机的文件拷贝到容器里

docker cp 容器名称:容器目录需要拷贝的文件或目录->从容器中拷贝文件到宿主机

目录映射示例:

我们可以在创建容器的时候通过 -v参数,将宿主机的目录文件与容器内的目录文件进行映射,这样我们就可以通过修改宿主机目录文件从而去影响容器。

格式:创建容器 –v 宿主机的目录:容器的目录

如:docker run -id -v/usr/local/dunm.rdb:/data/dunm.rdb --name=myRedis redis:latest

ps(如果你共享的是多级的目录,可能会出现权限不足的提示。这是因为CentOS7中的安全模块selinux把权限禁掉了,我们可以添加参数 --privileged=true 来解决映射目录没有权限的问题)

查看容器的数据:

docker inspect 容器名称(容器ID)

 

原创 | 全网最实在的docker入门教程二_第3张图片

信息有很多,这里是它的端口和ip.

删除容器:(注意删除之前要先停掉要删除的容器,否则会删除失败)

docker rm 容器名称(容器ID)

至此docker的基本操作大家已经有所了解了,不过初学者还是可能不太明白,下面通过实际部署开发必须的MySQL示例来为大家展示:

(在此之前要记得先启动dockersystemctlstart docker

MySQL部署:

1.拉取MySQL镜像

docker pull centos/mysql-57-centos7

可以看到首先我已经获取到了MySQL的镜像文件

2.通过镜像文件创建容器:(后台运行)

docker run -di --name=docker_mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=rootcentos/mysql-57-centos7

注意:

-p 前面的端口是宿主机的端口,后面的是容器内部MySQL的默认端口。宿主机的端口可以任意,只是用来映射容器内部的MySQL的,不过通常都是写成一致的。

-e 表示添加容器的环境变量,MYSQL_ROOT_PASSWORD参数表示登录MySQLroot用户的密码。

由图看到我们的MySQL容器已经启动了,接下来我们就可以连接它了:

原创 | 全网最实在的docker入门教程二_第4张图片

 

连接名任意;ip地址写宿主机的ip;端口是宿主机映射容器的端口,即冒号前面的端口;使用配置的root用户和密码。

原创 | 全网最实在的docker入门教程二_第5张图片

可以看到已经成功连接了,是不是有种神奇的感觉?如果你想在其它机器上使用这个MySQL容器,只需要复制运行即可!

今天的东西有些可能需要理解,初学者还是自己动手亲自实践一下吧!

docker入门教程,关注不迷路哦!

END


【推荐阅读】
原创 | 全网最实在的docker入门教程一

阿里问题定位神器 Arthas 的骚操作,定位线上BUG,超给力

最后放出我的视频号,以短视频方式分享技术
  

欢迎关注
明天见

你可能感兴趣的:(原创 | 全网最实在的docker入门教程二)