docker安装与部署

139 阅读4分钟

一.CentOS安装Docker

  • Docker 分为 CE 和 EE 两大版本。CE 即社区版(免费,支持周期 7 个月)
  • EE 即企业版,强调安全,付费使用,支持周期 24 个月。
  • Docker CE 分为 stable test 和 nightly 三个更新频道。 官方网站上有各种环境下的安装指南,这里主要介绍
  • Docker CE 在 CentOS上的安装。

1.卸载(可选)

如果之前安装过旧版本的Docker,可以使用下面命令卸载:

yum remove docker \
      docker-client \
      docker-client-latest \
      docker-common \
      docker-latest \
      docker-latest-logrotate \
      docker-logrotate \
      docker-selinux \
      docker-engine-selinux \
      docker-engine \
      docker-ce

2.安装docker

首先需要大家虚拟机联网,安装yum工具

yum install -y yum-utils \
   device-mapper-persistent-data \
   lvm2 --skip-broken

然后更新本地镜像源:

# 设置docker镜像源
yum-config-manager \
    --add-repo \
    https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    
sed -i 's/download.docker.com/mirrors.aliyun.com\/docker-ce/g' /etc/yum.repos.d/docker-ce.repo

yum makecache fast

然后输入命令:

yum install -y docker-ce

3.启动docker

Docker应用需要用到各种端口,逐一去修改防火墙设置。非常麻烦,因此建议大家直接关闭防火墙!启动docker前,一定要关闭防火墙后!!

# 关闭
systemctl stop firewalld
# 禁止开机启动防火墙
systemctl disable firewalld
#查看是否关闭防火墙
systemctl status firewalld

通过命令启动docker:

systemctl start docker  # 启动docker服务

systemctl stop docker  # 停止docker服务

systemctl restart docker  # 重启docker服务

systemctl status docker  # docker状态

查看docker版本:

docker -v

4.配置镜像加速

docker官方镜像仓库网速较差,我们需要设置国内镜像服务:

参考阿里云的镜像加速文档:cr.console.aliyun.com/cn-hangzhou…

#创建文件夹
sudo mkdir -p /etc/docker
#在文件夹内新建一个daemon.json文件
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://xxx.mirror.aliyuncs.com"] #换成自己阿里云加速器地址
}
EOF
#重新加载文件
sudo systemctl daemon-reload
#重启docker
sudo systemctl restart docker

到此Docker的安装就基本结束了

二、将nginx容器内部配置文件挂载到主机

将nginx容器内部配置文件挂载到主机,之后就可以在主机对应目录修改即可。适合频繁修改,复杂使用的情况

1.在主机/root目录下创建文件夹

mkdir -p /root/nginx/www  /root/nginx/logs /root/nginx/conf

2.将容器中的相应文件copy到刚创建的管理目录中

docker cp dbc:/etc/nginx/nginx.conf /root/nginx/conf/
注:docker cp dbc 中的 "dbc" 为容器ID前缀,只要唯一就好了

3.停止并移除容器

命令: 
开启容器:docker start 容器ID 
停止容器:docker stop 容器ID 
重启容器:docker restart 容器ID 
移除容器:docker rm 容器ID  #rmi 是删除镜像
强制停止容器:docker kill 容器ID
             #强制删除运行容器 docker kill -f 容器ID
             #强制删除所有容器 docker kill -f $(docker ps -a -q)

4.再次启动容器并作目录挂载

docker run  --name nginx -m 200m -p 80:80 \
-v /root/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /root/nginx/logs:/var/log/nginx \
-v /root/nginx/www:/usr/share/nginx/html \
-e TZ=Asia/Shanghai \
--privileged=true -d nginx
  • 参数说明
  • -name 给你启动的容器起个名字,以后可以使用这个名字启动或者停止容器
  • -p    映射端口,将docker宿主机的80端口和容器的80端口进行绑定
  • -P 随机映射端口,大写P
  • -v    挂载文件用的,
  • -m 200m 分配内存空间
  • -e TZ=Asia/Shanghai 设置时区
  • 第一个-v 表示将你本地的nginx.conf覆盖你要起启动的容器的nginx.conf文件,
  • 第二个-v 表示将日志文件进行挂载,就是把nginx服务器的日志写到你docker宿主机的/home/docker-nginx/log/下面
  • 第三个-v 表示的和第一个-v意思一样的。
  • -d 表示启动的是哪个镜像(后台运行)
  • -i 以交互模式运行容器,通常与-t同时使用
  • -t 为容易分配一个伪输入终端,通常与-i一起使用

三、常见使用命令

1.docker ps 查看正在运行的容器

docker ps
  • 参数说明
  • -a 列出当前所有运行的和历史上运行过的容器
  • -l 显示最近创建的容器
  • -n 显示最近几个创建的容器 (ps:docter ps - n 3)
  • -q 静默模式,只显示容器编号

2.退出容器

exit  #退出容器,容器停止
      ps:docker run -it ubuntu /bin/bash
         exit
ctrl+p+q   #退出容器,容器不停止

3.启动守护式容器

docker run -d 容器ID   #-d 指定后台运行模式

4.查看容器日志

docker logs  容器ID

5.重新进入容器

docker exec -it 容器ID /bin/bash

6.从容器内拷贝文件到宿主机

docker ps 容器ID:/容器文件路径 /宿主机文件路径

7.容器导入导出

docker export 容器ID  #容器导出
ps:docker export xxx > x.tar  #导出到当前文件夹下
cat x.tar | docker import - 镜像用户/镜像名/镜像版本号
ps:cat x.tar | docker import - ypf5208/ubuntu:3.7

8.提交镜像

docker commit -m="提交描述信息" -a="作者" 容器ID 要创建的目标镜像名称:[标签名]

9.inspect 会以 json 格式得到 docker 镜像/容器的元数据

docker inspect 容器ID  #产看容器详情,如磁盘挂载等