文章目录
- 一、Docker的虚拟机安装
- 1、完成虚拟机的更新
- 2、完成Docker安装
- 3、配置镜像加速器
- 二、Docker常用命令
- 三、Docker的容器创建
- 四、理解虚拟机中的Docker容器
一、Docker的虚拟机安装
1、完成虚拟机的更新
详见我的文章。
2、完成Docker安装
yum list installed|grep docker # 检查是否有docker旧版本,有则删除
yum -y install yum-utils # 安装Docker的安装工具
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum clean all
yum makecache # 再进行一次更新
yum -y install docker-ce docker-ce-cli containerd.io
systemctl start docker # 尝试启动docker
systemctl isactive docker # 检查docker是否被成功启用
3、配置镜像加速器
打开阿里云镜像服务,登录自己的阿里云账号。
根据操作文档继续进行配置,注意需要将自己的镜像加速器的特有地址写在daemon.json
中。
注意,此处一定要按照标准json格式书写配置,否则可能会导致报错。
mkdir -p /etc/docker
vim /etc/docker/daemon.json
-------------------------------------------------------------
{
"registry-mirrors": [
"https://7ce69edu.mirror.aliyuncs.com"
# 可以添加其他的镜像源地址
]
}
-------------------------------------------------------------
systemctl daemon-reload
systemctl restart docker
二、Docker常用命令
docker search name:edition # 查找安装资源
# docker search mysql 查找mysql的安装资源
docker images # 查找已下载的镜像
docker pull name edition # 下载镜像(如果没有指定版本,默认下载最新稳定版本)
# docker pull mysql
docker run \ # 根据镜像安装容器
--name mysql8 \
--restart=always \
--privileged=true \
-e MYSQL_ROOT_PASSWORD='abc' \ # 指定Docker容器中Mysql服务的密码
-p 3308:3306 \ # 端口映射
-v /opt/software/mysql_docker_3308:/mysql_share \ # 共享目录
-d 3218b38490ce # 运行的镜像的ID
docker ps # 查找正在运行的容器
docker ps -a # 查找所有历史容器
docker exec -it 3d234d76f0bd /bin/bash # 进入指定docker容器
exit # 从容器回到虚拟机
docker container stop CONTAINER_ID # 关闭指定容器
在最后根据镜像安装容器时,-d
后的内容必须与docker所安装的Mysql的镜像的IMAGE ID
一致
在进入容器时,exec -it
后面的内容必须与docker容器的CONTAINER_ID
一致
三、Docker的容器创建
此处以创建Mysql容器为例
docker search mysql
docker pull mysql
docker images
# 记录镜像的IMAGE_ID
docker run \
--name mysql8 \
--restart=always \
--privileged=true \
-e MYSQL_ROOT_PASSWORD='abc' \
-p 3308:3306 \
-v /opt/software/mysql_docker_3308:/mysql_share \
-d IMAGE_ID# 填写镜像的IMAGE_ID
docker ps # 记录容器的CONTAINER_ID
docker exec -it CONTAINER_ID /bin/bash # 填写容器的CONTAINER_ID
mysql -u root -pabc # 尝试登陆mysql,检查功能
四、理解虚拟机中的Docker容器
-
目录映射:虚拟机和Docker容器之间存在一个共享目录,当文件进入虚拟机内的目录后,会同步到Docker容器中的目录。
-
端口映射:
命令为:
docker run -p <宿主机端口>:<容器内部服务端口> image_name
在设定端口的时候,应该先通过该命令确定端口是否被占用:
netstat -ltnp | grep PORT
对于像在Github爬取项目的场景,可以选择1024以上的非常用端口,只要检查后未实际占用端口即可。