CentOS安装docker

参考文档:

1
2
3
yum install -y yum-utils
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum install docker-ce docker-ce-cli containerd.io

启动docker服务

1
systemctl start docker

将docker加入开机自启

1
systemctl enable docker

查看是否安装成功

1
docker version

配置阿里云镜像加速器

  1. 登录阿里云控制台
  2. 点击容器镜像服务
  3. 点击 镜像工具 -> 镜像加速器
  4. 选择适合自己的服务器版本


1
2
3
4
5
6
7
8
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://xxxxxxxx.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

常用参数

1
2
3
4
5
6
-i:容器的标准输入保持打开
-t:让docker分配一个伪终端并绑定到容器的标准输入上
-p : 端口映射 格式为[主机端口:容器端口]
-d : 后台模式运行
-v:挂载主机的目录 格式为[主机路径:容器路径]
--name : 给容器的起一个名字

常用命令

容器 container

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# 查询正在启动的容器
docker ps
# 查询所有容器
docker ps -a
# 启动新容器
docker run xxx
# 停止容器
docker stop 容器id
# 删除容器
docker rm 容器id
# 强制删除正在运行的容器
docker rm -f 容器id
# 删除所有容器
docker rm $(docker ps -aq)
# 进入容器
# exec 进入容器后开启一个新的终端
# attach 进入容器正在执行的终端,需要ctrl+p+q退出
docker exec -it 容器id /bin/bash
docker attach 容器id
# 将容器数据拷贝到主机
docker cp 容器id:路径 主机路径 # 例如 docker cp ff0:/usr/src/app/. /root/node-test

镜像 images

1
2
3
4
5
6
7
8
# 查询所有镜像
docker images
# 安装镜像
docker pull xxx
# 删除镜像
docker rmi xxx
# 构建镜像
docker build . -t <username>/docker-name

docker安装Mysql

1
2
docker pull mysql
docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root mysql

docker安装mongoDB

1
2
3
4
docker pull mongo
docker run -d -p 27017:27017 mongo
# 密码启动
docker run -d -p 27017:27017 -e MONGO_INITDB_ROOT_USERNAME=root -e MONGO_INITDB_ROOT_PASSWORD=root mongo

docker安装node

1
2
docker pull node
docker run -it node /bin/bash

推送到远程仓库

DockerHub

  1. 注册DockerHub账号:https://hub.docker.com
  2. 登录:docker login -u username
  3. 推送:docker push username/xxxx:[镜像版本号]
  4. 查看: https://hub.docker.com/repositories

阿里云

打开阿里云控制台

点击:容器镜像服务 -> 实例列表

  1. 创建命名空间
  2. 创建镜像仓库(仓库类型可选择私有,代码源选择本地仓库)

登录阿里云Docker Registry

1
docker login --username=username registry.cn-hangzhou.aliyuncs.com

从Registry中拉取镜像

1
docker pull registry.cn-hangzhou.aliyuncs.com/xxx/xxx:[镜像版本号]

将镜像推送到Registry

1
2
3
docker login --username=[用户名] registry.cn-hangzhou.aliyuncs.com
docker tag [ImageId] registry.cn-hangzhou.aliyuncs.com/xxx/xxx:[镜像版本号]
docker push registry.cn-hangzhou.aliyuncs.com/xxx/xxx:[镜像版本号]

push好慢啊,还得给镜像重命名,算了我还是用DockerHub