本文主要是介绍Docker介绍,安装使用(本文废弃太老了),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
容器:将软件打包成标准化单元,以用于开发、交付和部署
容器与虚拟机:容器虚拟化的是操作系统而不是硬件,容器之间是共享同一套操作系统资源的。虚拟机技术是虚拟出一套硬件后,在其上运行一个完整操作系统。因此容器的隔离级别会稍低一些。
yum命令在线安装:yum install docker(该命令已经老了,只能拿到1.13版本)
不指定版本就会拿取最新版本
拿最新版本docker yum -y docker-ce
查看docker版本:docker -v
启动与停止docker
systemctl命令是系统服务docker管理器指令,它是 service 和 chkconfig 两个命令组合。
- 启动docker:systemctl start docker
- 停止docker:systemctl stop docker
- 重启docker:systemctl restart docker
- 查看docker状态:systemctl status docker
- 开机启动:systemctl enable docker
- 查看docker概要信息:docker info
- 查看docker帮助文档:docker --help
docker镜像:当一个容器启动后,它将会被移动到内存中,而引导文件系统则会被卸载,以留出更多的内存供磁盘镜像使用。Docker容器启动是需要的一些文件,而这些文件就可以称为Docker镜像。
列出docker下的所有镜像:docker images
- REPOSITORY:镜像所在的仓库名称
- TAG:镜像标签
- IMAGE ID:镜像ID
- CREATED:镜像的创建日期(不是获取该镜像的日期)
- SIZE:镜像大小
- 这些镜像都是存储在Docker宿主机的/var/lib/docker目录下
我们在运行同一个仓库中的不同镜像时,可以通过在仓库名后面加上一个冒号和标签名来指定该仓库中的某一具体的镜像,例如docker run --name custom_container_name –i –t docker.io/ubunto:12.04 /bin/bash,表明从镜像Ubuntu:12.04启动一个容器,而这个镜像的操作系统就是Ubuntu:12.04。在构建容器时指定仓库的标签也是一个好习惯。
收索镜像(网络中查找需要的镜像):docker search 镜像名称
- NAME:仓库名称
- DESCRIPTION:镜像描述
- STARS:用户评价,反应一个镜像的受欢迎程度
- OFFICIAL:是否官方
AUTOMATED:自动构建,表示该镜像由Docker Hub自动构建流程创建的
删除镜像
- docker rmi $IMAGE_ID:删除指定镜像
- docker rmi `docker images -q`:删除所有镜像
Docker容器操作
docker ps 查看正在运行容器
docker ps –a 查看所有的容器(启动过的历史容器)
docker ps –l 查看最后一次运行的容器
docker ps -f status=exited 查看停止的容器
docker exec -it 775c7c9ee1e1 /bin/bash 进入某个docker,其中775c7c9ee1e1 为docker的id
复制Linux服务器上文件到8cd8db034688这个docker:docker cp {113上路径} 8cd8db034688:docker内路径
创建与启动容器
- 创建容器常用的参数说明:
- 创建容器命令:docker run
- -i:表示运行容器
- -t:表示容器启动后会进入其命令行。加入这两个参数后,容器创建就能登录进去。即分配一个伪终端。
- --name :为创建的容器命名。
- -v:表示目录映射关系(前者是宿主机目录,后者是映射到宿主机上的目录),可以使用多个-v做多个目录或文件映射。注意:最好做目录映射,在宿主机上做修改,然后共享到容器上。
- -d:在run后面加上-d参数,则会创建一个守护式容器在后台运行(这样创建容器后不会自动登录容器,如果只加-i -t两个参数,创建后就会自动进去容器)。
- -p:表示端口映射,前者是宿主机端口,后者是容器内的映射端口。可以使用多个-p做多个端口映射
交互式容器
创建一个交互式容器并取名为mycentos:
docker run -it --name=mycentos centos:7 /bin/bash
这时我们通过ps命令查看,发现可以看到启动的容器,状态为启动状态
使用exit命令 退出当前容器
守护容器(退出时容器不会停止)
创建一个守护式容器:如果对于一个需要长期运行的容器来说,我们可以创建一个守护式容器。命令如下(容器名称不能重复):
docker run -di -name=mycentos6
1.登录守护式容器方式:
docker exec -it container_name (或者 container_id) /bin/bash(exit退出时,容器不会停止)
2.停止与启动容器
停止正在运行的容器:
docker stop $CONTAINER_NAME/ID
启动已运行过的容器:
docker start $CONTAINER_NAME/ID
文件拷贝
如果我们需要将文件拷贝到容器内可以使用cp命令
docker cp 需要拷贝的文件或目录 容器名称:容器目录
也可以将文件从容器内拷贝出来
docker cp 容器名称:容器目录 需要拷贝的文件或目录docker cp 容器名称:容器目录 需要拷贝的文件或目录
docker cp 容器名称:容器目录 需要拷贝的文件或目录
目录挂载(守护容器)
我们可以在创建容器的时候,将宿主机的目录与容器内的目录进行映射,这样我们就可以通过修改宿主机某个目录的文件从而去影响容器。
创建容器 添加-v参数 后边为 宿主机目录:容器目录
docker run -di -v /usr/local/myhtml:/usr/local/myhtml --name=mycentos2 centos:7
容名称:容器目录 需要拷贝的文
如果你共享的是多级的目录,可能会出现权限不足的提示。
这是因为CentOS7中的安全模块selinux把权限禁掉了,我们需要添加参数 --privileged=true 来解决挂载的目录没有权限的问题
件或
查看容器IP
我们可以通过以下命令查看容器运行的各种数据
docker inspect mycentos2
也可以直接执行下面的命令直接输出IP地址
docker inspect --format='{{.NetworkSettings.IPAddress}}' mycentos2
录cp器名称:容器目录 需要拷贝的文件或目录
删除容器
删除指定的容器:docker rm $CONTAINER_ID/NAME
注意,只能删除停止的容器
删除所有容器:docker rm `docker ps -a -q`
部署应用
MySQL部署
拉取MySQL镜像
docker pull mysql
录
查看镜像
创建MySQL容器
docker run -di --name pinyougou_mysql -p 33306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql
-p 代表端口映射,格式为 宿主机映射端口:容器运行端口
-e 代表添加环境变量 MYSQL_ROOT_PASSWORD是root用户的登陆密码
进入MySQL容器,登陆MySQL
进入mysql容器
docker exec -it pinyougou_mysql /bin/bash
登陆mysql:mysql -u root -p
远程登陆Mysql
(1)我们在我们本机的电脑上去连接虚拟机Centos中的Docker容器,这里192.168.247.130是虚拟机操作系统的IP
mysql -u root -p
mysql -u root -p
mysqlmysql -u root -p -u root -p
mmysql -u root -pysql -u root -p
docker cp 容器名称:容器目录 需要拷贝的文件或目录
docker cp 容器名称:容器目录 需要拷贝的文件或目录cker cp 容器名称:容器目录 需要拷贝的文件或目录
n -di --name=mycentos2 centos:7n -di --name=mycentos2 centos:7ckdodocker run -di --name=mycentos2 centos:7
docker run docker-di --name=mycentos2 centos:7
docker run -ddodocker run -di --name=mycentos2 centos:7cker run -di --name=mycentos2 centos:7i --name=mycentos2 centos:7
cker run -di --name=mycentos2 centos:7er rdocker run -di --name=mycentos2 centos:7un -di --name=mycentos2 centos:7
docker rudocker run -di --name=mycentos2 centos:7n -di --nametos2 centos:7
这篇关于Docker介绍,安装使用(本文废弃太老了)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!