Docker安装及Mysql容器

一些常用的容器快速启动的脚本,比如Mysql,每次重新去官网找文档太痛苦了o(╥﹏╥)o

Docker安装(Centos)

安装

官方地址

docker安装参考的是官方文档,如果翻译有误,请指正,谢谢!

删除旧版本

sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

设置仓库

sudo yum install -y yum-utils
sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo

可选步骤(可跳过)

开启test和nightly安装
这些仓库已经包含在docker.repo文件中,默认为禁用状态
以下命令开启nightly版本安装

sudo yum-config-manager --enable docker-ce-nightly

以下命令开启test版本安装

sudo yum-config-manager --enable docker-ce-test

你也可以通过使用命令 yum-config-manager--disable 参数来禁用test或nightly版本安装
如果想开启则使用 --enable参数
示例

sudo yum-config-manager --disable docker-ce-nightly

安装docker引擎

  1. 安装最新版本的docker引擎,或者参照第2步安装指定版本的docker

    sudo yum install docker-ce docker-ce-cli containerd.io

    执行完命令后docker已经完成安装,但是还没有启动

  2. 安装指定版本的docker引擎

  • 列出并排序您存储库中可用的docker版本,此示例按版本号(从高到低)对结果进行排序
    yum list docker-ce --showduplicates | sort -r
    
    docker-ce.x86_64  3:18.09.1-3.el7                     docker-ce-stable
    docker-ce.x86_64  3:18.09.0-3.el7                     docker-ce-stable
    docker-ce.x86_64  18.06.1.ce-3.el7                    docker-ce-stable
    docker-ce.x86_64  18.06.0.ce-3.el7                    docker-ce-stable
  • VERSION_STRING代表版本号,如:docker-ce.x86_64 3:18.09.1-3.el7,版本号为18.09.1
    从第一个:开始到-结束,这中间的为版本号
    sudo yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io

    启动

  • 命令
    sudo systemctl start docker
  • 验证是否安装成功,以hello-world镜像为例
    sudo docker run hello-world

修改Docker镜像源

  • docker默认的镜像源国内拉取镜像很慢,可以修改为国内镜像源,以下为网易镜像源,也可以百度搜索其他镜像源设置
    vim /etc/docker/daemon.json
    {
        "registry-mirrors":[
            "http://hub-mirror.c.163.com"
        ]
    }
  • 修改后需要重启
    systemctl restart docker

    安装docker-compose

    Centos安装好后如果要使用docker-compose则需要单独安装一下,macos则不需要,安装包已经安装好了
  1. 运行以下命令下载当前稳定版本的Docker Compose:
    sudo curl -L "https://github.com/docker/compose/releases/download/1.26.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
  2. 赋予可执行的权限
    sudo chmod +x /usr/local/bin/docker-compose
  3. 检查是否安装成功
    docker-compose --version
    显示版本号信息docker-compose version 1.26.2, build 1110ad01则安装成功

::: tip 提示
如果安装后docker-compose命令依然无法使用,检查一下环境变量,你也可以通过创建软连接的方式到 /usr/bin目录下,或者其它在环境变量中的目录
例如:

sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

:::

Docker网络

官方地址

  1. 使用docker network create创建用户自定义网络
    docker network create my-net
  2. 使用docker network rm删除自定义网络
    docker network rm my-net
  3. 使用自定义网络
  • 创建容器时指定network
    docker create --name my-nginx \
     --network my-net \
     --publish 8080:80 \
     nginx:latest
  • 如果容器已经创建,通过此命令加入网络
    docker network connect my-net my-nginx

Mysql容器

  • 创建mysql容器
docker run --name mysql8.0 \
-e MYSQL_ROOT_PASSWORD=<your_password> \
-e MYSQL_ROOT_HOST=% \
-p <your_port>:3306 \
-v <your_lib>:/var/lib/mysql \
-d mysql:8.0.20
  • 设置mysql远程登录
docker exec -it <your_mysql_container_id> /bin/bash
mysql -u root -p
create user 'root'@'%' identified by '<your_password>';
grant all privileges on *.* to 'root'@'%' with grant option;
flush privileges;

Java运行镜像

  • Dockerfile配置
FROM adoptopenjdk/openjdk8:jre
MAINTAINER <author_name>
RUN mkdir -p <workdir>
WORKDIR <workdir>
EXPOSE 8081
ADD <jar_package_path> ./app.jar
ENTRYPOINT ["java", "-Djava.security.egd=file:/dev/./urandom", "-jar", "app.jar"]
CMD ["--spring.profiles.active=prod"]
  • 构建镜像
    docker build -t <customer-image-name> <Dockerfile-path>

其他命令

#查看容器日志
docker logs --tail <line> <container-id>
docker logs -f <container-id>
#查看容器状态
docker stats 
#查看容器当前状态
docker stats --no-stream
#指定容器状态
docker stats --no-stream registry <container-id>