Docker学习(二)——容器(镜像)的创建、运行

容器的相关命令

一、创建交互式容器

docker run [option] --name=容器名称镜像名称 [向启动容器中传入的命令] /bin/bash

常用参数说明

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

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

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

-v 表示目录映射关系(前者是宿主机目录,后者是映射到宿主机上的目录,即 宿主机目录:容器中目录),可以使 用多个-v 做多个目录或文件映射。注意:最好做目录映射,在宿主机上做修改,然后 共享到容器上。

-d 在run后面加上-d参数,则会创建一个守护式容器在后台运行(这样创建容器后不 会自动登录容器,如果只加-i -t 两个参数,创建后就会自动进去容器)。

-p 表示端口映射,前者是宿主机端口,后者是容器内的映射端口。可以使用多个-p 做多个端口映射

-e 为容器设置环境变量

--network=host 表示将主机的网络环境映射到容器中,容器的网络与主机相同

例如:

docker run -it --name=myRedis redis:latest /bin/bash 

  

如上图所示,相当于我们在容器中显示地运行了一台redis。

@×××××就是该容器的ID。

我们可以通过输入exit或者ctrl+D退出该容器,当我们退出之后,该交互式容器也会随之停止!

 

二、创建守护式容器

创建一个守护式容器:如果对于一个需要长期运行的容器来说,我们可以创建一个守护式容器。在容器内部exit退出时,容器也不会停止。

docker run [option] --name=容器名称镜像名称 [向启动容器中传入的命令] /bin/bash

  例如:(这里已将之前创建的交互式容器删除)

docker run -id --name=myRedis redis:latest /bin/bash

  创建完成后,通过以下的命令进入该容器

docker exec -it 容器名称或容器的ID /bin/bash

  

 如图所示,我们就进入了该容器。

三、容器的其他操作命令

1、查看容器

docker ps #查看正在运行的容器
docker pa -a #查看所有的容器

2、启动和停止容器

docker stop 容器的名称或者ID
docker start 容器的名称或者ID

3、删除容器

删除容器之前要先停止该容器

docker rm 容器的名称或者ID

4、拷贝文件

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

5、目录的映射

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

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

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

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

6、查看容器的数据

docker inspect 容器名称(容器ID)

  输出的信息很多,如下图所示的是容器的端口和IP地址。

MySQL的部署

1、拉取MySQL镜像

docker pull centos/mysql-57-centos7

 可以看到MySQL镜像已经下载好了

2、通过下载好的镜像创建容器(守护式)

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

 注意:

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

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

可以由上图中看出我们创建的容器已经启动。

3、连接MySQL容器

 连接的名称随便起;主机名填宿主机的IP地址;端口是宿主机映射容器的端口,即冒号前面的端口;使用配置的root用户和密码。

点击连接后可以看到成功创建了一个新的连接。

如果你想在其它机器上使用这个MySQL容器,只需要复制运行即可!

参考https://mp.weixin.qq.com/s/5HK1khkGcTgsH8vKtrR4Pg

参考https://www.cnblogs.com/blog-rui/p/11244023.html

原文地址:https://www.cnblogs.com/zrs123/p/14097154.html