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引擎
安装最新版本的docker引擎,或者参照第2步安装指定版本的docker
sudo yum install docker-ce docker-ce-cli containerd.io
执行完命令后
docker
已经完成安装,但是还没有启动安装指定版本的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则不需要,安装包已经安装好了
- 运行以下命令下载当前稳定版本的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
- 赋予可执行的权限
sudo chmod +x /usr/local/bin/docker-compose
- 检查是否安装成功
显示版本号信息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网络
- 使用
docker network create
创建用户自定义网络docker network create my-net
- 使用
docker network rm
删除自定义网络docker network rm my-net
- 使用自定义网络
- 创建容器时指定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>