docker

Author Avatar
kevin
发表:2023-03-13 16:58:00
修改:2024-10-09 16:58:10

docker

安装

yum 包更新到最新

sudo yum update

安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的

sudo yum install -y yum-utils device-mapper-persistent-data lvm2

设置yum源为阿里云

sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

安装docker

sudo yum install docker-ce

盒子博客安装教程

# 安装依赖
sudo yum install -y yum-utils
# 添加软件源信息
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 更新 yum 缓存
sudo yum makecache fast
# 安装 Docker
sudo yum -y install docker-ce
# 测试(可选)
sudo docker run hello-world
# 启动 Docker 后台服务
sudo systemctl start docker
# Docker 服务开机启动   
systemctl enable docker

设置docker镜像加速器

创建文件

vim /etc/docker/daemon.json  


文件内容
{
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
}

加载配置文件

sudo systemctl daemon-reload

  • 启动docker:

    • systemctl start docker
  • 停止docker:

    • systemctl stop docker
  • 重启docker:

    • systemctl restart docker
  • 查看docker状态:

    • systemctl status docker
  • 开机启动: 腾讯云需要开启这个,其他不用

    • systemctl enable docker

常用指令介绍

使用前缀docker开头

cp:本地文件系统(OS操作系统|宿主机)和容器之间进行文件或者文件夹拷贝
exec:登录一个容器,使用命令行操作正在运行的容器。
images:镜像的集合查询。
ps:容器列表(正在运行的) process status 进程状态 -a 参数表示all所有容器
pull:下载镜像 docker pull centos:7 冒号指定版本号
restart:重启一个或多个容器
rm:删除一个或多个容器
rmi:删除一个或多个镜像 i是image
run:创建一个容器,并运行起来
save:导出镜像到一个文件(tar)中
search:搜索镜像(从Docker Hub)
start:启动一个或多个已经停止的容器
restart:重启动一个或多个已经停止的容器
stop:停止一个或多个正在运行的容器

创建与启动容器

-i:表示运行容器

-t:表示容器启动后会进入其命令行。加入这两个参数后(it),容器创建就能登录进去。即分配一个伪终端。

--name :为创建的容器命名。 可以不用等号,用空格隔开

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

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

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

网上常用密令 dit

交互式方式创建容器

创建前台容器(退出则进程也退出了)

docker run -it --name=容器名称 镜像名称:标签(TAG名) /bin/bash(貌似不用这个也可以)

启动完成后,直接进入当前容器

如果退出容器,则容器会进入停止状态

退出容器

exit

创建后台容器(后台运行的容器)

docker run -id --name=mycentos2 centos:7

进入守护式容器方式:

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

目录挂载

创建容器 -v 宿主机目录:容器目录 标签:版本号

docker run -id --name=centos3 -v /usr/local/myhtml:/usr/local/myhtml centos:7

如果你共享的是多级的目录,可能会出现权限不足的提示。

需要添加参数 –privileged=true 来解决挂载没权限问题

查看容器IP地址

docker inspect 容器名称(容器ID) 

删除容器

docker rm 容器名称(容器ID)

先停止容器在删除

MySQL部署

docker pull centos/mysql-57-centos7
docker run -di --name=mysql5.7 -p 33306:3306 -e MYSQL_ROOT_PASSWORD=root centos/mysql-57-centos7


docker run -di --name mysql_5.7 \
> -p 33306:3306 \
> -e MYSQL_ROOT_PASSWORD=root \
> centos/mysql-57-centos7

docker run -di --name=容器名字 -p 宿主机端口:容器端口 -e MYSQL_ROOT_PASSWORD=密码 容器名称

tomcat部署

docker pull tomcat:7-jre7
docker run -di --name=mytomcat -p 9000:8080 -v /usr/local/webapps:/usr/local/tomcat/webapps tomcat:7-jre7


docker run -di --name mytomcat \
> -p 9000:8080 \
> -v /usr/local/webapps:/usr/local/tomcat/webapps \
>  tomcat:7-jre7

-p表示地址映射 -v 表示目录挂载

Nginx部署

docker pull nginx
docker run -di --name=mynginx -p 80:80 nginx

docker run -id --name mynginx \
> -p 80:80 \
> nginx

Redis部署

docker pull redis
docker run -di --name=myredis -p 6379:6379 redis

docker run -id --name myredis \
> -p 6379:6379 \
> redis

容器保存为镜像

# 保存nginx容器为镜像
docker commit 容器名称  镜像名称
例如:docker commit mynginx mynginx_i

镜像备份

# 命令形式:docker save –o tar文件名 镜像名
# 保存镜像为文件 -o:表示output 输出的意思
docker  save -o mynginx.tar mynginx_i

镜像恢复与迁移

# 命令形式:docker load -i tar文件名
docker load -i mynginx.tar
评论