Docker学习笔记

288 阅读3分钟

ubuntu 21安装docker

# 使用国内 daocloud 一键安装命令
curl -sSL https://get.daocloud.io/docker | sh

ubuntu 18.04安装docker

# 由于apt官方库里的docker版本可能比较旧,所以先卸载可能存在的旧版本
sudo apt-get remove docker docker-engine docker-ce docker.io

# 更新apt包索引
sudo apt-get update

# 安装以下包以使apt可以通过HTTPS使用存储库
sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common

# 添加Docker官方的GPG密钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

# 安装stable存储库
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu artful stable"

# 再更新一下apt包索引
sudo apt-get update

# 安装最新版本的Docker CE
sudo apt-get install -y docker-ce

# 查看docker服务是否启动
systemctl status docker

# 若未启动,则启动docker服务
sudo systemctl start docker

docker-compose安装

# 下载
sudo curl -L https://github.com/docker/compose/releases/download/1.24.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose

# 赋予可执行权限
sudo chmod +x /usr/local/bin/docker-compose

# 查看版本
docker-compose -v

docker升级

# 关闭docker
sudo systemctl stop docker
# 卸载旧版本:
sudo apt-get purge docker-ce
# 安装新版本
sudo apt update
sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common
curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
sudo apt-cache madison docker-ce
 
# 根据终端显示的版本选择一个
sudo apt install docker-ce=5:19.03.1~3-0~ubuntu-bionic
systemctl start docker
sudo systemctl start docker
sudo systemctl enable docker
sudo docker info

centos7安装docker

# 更新包
sudo yum update

# 卸载旧版本
sudo yum remove docker  docker-common docker-selinux docker-engine

# 安装需要的软件包
sudo yum install -y yum-utils device-mapper-persistent-data lvm2

# 设置yum源
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

# 查看所有仓库中所有docker版本
yum list docker-ce --showduplicates | sort -r

# 安装docker
sudo yum install docker-ce
# sudo yum install <FQPN> 选择特定版本安装

# 启动并加入开机启动
sudo systemctl start docker
sudo systemctl enable docker

# 验证安装
docker version

添加docker权限给当前用户 可以不用sudo

# 添加 docker group 如果有可以不创建
sudo groupadd docker

# 将用户加入该 group 内
sudo gpasswd -a ${USER} docker

# 重启 docker 服务
sudo systemctl restart docker

# 切换当前会话到新 group
newgrp docker

docker配置镜像源

# 创建或修改/etc/docker/daemon.json文件
{
    "registry-mirrors": ["http://hub-mirror.c.163.com"]
}

# 重启服务
systemctl restart docker.service

# 常见镜像源
https://registry.docker-cn.com      # docekr中国
http://hub-mirror.c.163.com         # 网易
https://docker.mirrors.ustc.edu.cn  # 科大
https://cr.console.aliyun.com/      # 阿里

常用docker命令

# 查看帮助
docker --help

# 查看docker版本信息
docekr version

# 查看镜像
docker image ls

# 搜索镜像
docker search <image-name>

# 下载镜像
docker pull <image-name>

# 删除镜像
docker image rm <image-name>

# 查看容器
docker ps

# 查看所有容器
docker ps -a

# 删除容器
docker rm <name/id>

# 停止容器
docker stop <name/id>

# 启动容器
docker start <name/id>

# 重启容器
docker restart <name/id>

# 查看容器日志
docker logs <name/id>

# 复制文件到内部
docker cp [file-path] [container ID]:[file-path]

docker部署vue项目

  1. vue项目打包
npm run build

  1. 项目根目录创建nginx目录,该目录下新建配置文件default.conf
server {
    listen       80;
    server_name  localhost;

    #charset koi8-r;
    access_log  /var/log/nginx/host.access.log  main;
    error_log  /var/log/nginx/error.log  error;

    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
    }

    #error_page  404              /404.html;

    # redirect server error pages to the static page /50x.html
    #
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
}
  1. 项目根目录创建Dockerfile文件
# 基础镜像
FROM nginx
# 复制资源文件
COPY dist/ /usr/share/nginx/html/
# 复制nginx配置
COPY nginx/default.conf /etc/nginx/conf.d/default.conf
  1. 创建运行docker
docker build -t vue-name .
docker run -p 3000:80 -d --name vue-name vue-name

docker部署jar

# 创建目录
mkdir demo

# 复制jar包
cp spring.jar ./

# 创建`Dockerfile`文件
FROM java:8
MAINTAINER bingo
ADD spring.jar demo.jar
EXPOSE 8080
ENTRYPOINT ["java","-jar","demo.jar"]

# 构建镜像
docker build -t demo .

# 运行容器
docker run -p 8080:8080 -d --name demo demo

docker运行qq wechat

项目地址: QQ[!github.com/bestwu/dock…] wechat[!github.com/bestwu/dock…]

docker pull bestwu/wechat

# –ipc=host 不加会出现闪退的情况

docker run -d --name wechat --device /dev/snd --ipc=host \
-v /tmp/.X11-unix:/tmp/.X11-unix \
-v $HOME/WeChatFiles:/WeChatFiles \
-e DISPLAY=unix$DISPLAY \
-e XMODIFIERS=@im=ibus \
-e QT_IM_MODULE=ibus \
-e GTK_IM_MODULE=ibus \
-e AUDIO_GID=`getent group audio | cut -d: -f3` \
-e GID=`id -g` \
-e UID=`id -u` \
bestwu/wechat

docker pull bestwu/qq

docker run -d --name qq \
--device /dev/snd --ipc=host \
-v $HOME/TencentFiles:/TencentFiles \
-v /tmp/.X11-unix:/tmp/.X11-unix \
-e XMODIFIERS=@im=ibus \
-e QT_IM_MODULE=ibus \
-e GTK_IM_MODULE=ibus \
-e DISPLAY=unix$DISPLAY \
-e AUDIO_GID=`getent group audio | cut -d: -f3` \
-e VIDEO_GID=`getent group video | cut -d: -f3` \
-e GID=`id -g` \
-e UID=`id -u` \
bestwu/qq:latest