本文共 2934 字,大约阅读时间需要 9 分钟。
Docker是一款开源的应用容器引擎,基于go语言开发,遵循Apache 2.0协议。其核心优势在于通过沙箱机制独立运行每个容器,确保容器间接口最低,安全性高,同时启动速度快、资源占用小。
在新主机上安装 Docker Engine-Community 之前,需先设置 Docker 仓库。完成后即可从仓库安装和更新 Docker。
sudo yum install -y yum-utils device-mapper-persistent-data lvm2sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.reposudo yum makecache fast
默认安装最新社区版 Docker 引擎及容器工具:
sudo yum install docker-ce docker-ce-cli containerd.io
列出可用版本并安装指定版本:
yum list docker-ce --showduplicates | sort -rsudo yum install docker-ce-18.09.1 docker-ce-cli-18.09.1 containerd.io
_containerd.io _是 Docker 安装时的基础组件。
systemctl status dockersystemctl stop dockersystemctl start docker
注意:执行容器操作前,确保 Docker 引擎已运行。
镜像是 Docker 容器操作的基础,通过镜像名搜索并下载镜像。
docker search image_namedocker search --filter "is-official=true" image_namedocker search --filter "is-automated=true" image_namedocker search --filter stars=3 image_namedocker pull image_namedocker imagesdocker images image_namedocker rmi image_namedocker commit -a "author" -m "message" container_name/container_id new_image_name:tag_name
创建、查看、启动、停止及退出容器。
docker run -itd --name=container_name image_namedocker psdocker ps -adocker ps -ldocker start container_name/container_iddocker stop container_name/container_iddocker restart container_name/container_iddocker rm container_name/container_iddocker exec -it container_name/container_id /bin/bashexit
端口映射、文件挂载及互联。
docker run -itd --name=container_name -p 宿主机端口号:容器端口号 image_namedocker run -itd --name=container_name -p 8888:80 -v /usr/local/zy/web01.html:/usr/share/nginx/html/index.html nginxdocker cp 容器名:目录/文件(夹) 宿主机目录/文件(夹)docker cp 宿主机目录/文件(夹) 容器名:目录/文件(夹)
容器间互联有三种主要方式,常用–link 参数实现。
数据库和 Web 服务器的容器化实现:
# 创建数据库容器docker run -d --name mysqldb -p3306:3306 -e MYSQL_ROOT_PASSWORD=fanshine mysql/mysql-server# 创建并连接到数据库的 Web 容器docker run -d -p 80:80 --name nginxweb --link mysqldb:mysqldb nginx/nginx-server
#.install MySQL
docker pull mysql
mkdir -p /var/cnmp/
cd /var/cnmp/docker run -itd -p 3306:3306 --name mysql -v $pwd/mysql/conf:/etc/mysql/conf.d -v $pwd/mysql/logs:/var/logs -v $pwd/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d --privileged=true mysql
docker exec -it mysql /bin/bashmysql -uroot -p123456show databases;create database db01;use db01;create table t_book(id int not null primary key, bookName varchar(20));insert into t_book values(1, 'java');select * from t_book;
use mysql;ALTER USER 'root'@'%' IDENTIFIED BY '123456' PASSWORD EXPIRE NEVER;ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';FLUSH PRIVILEGES;
docker pull jenkins
docker run -itd --name=jenkins -p8080:8080 jenkins
如需配置 Jenkins 实例,访问容器控制台并按提示操作。
docker exec -it jenkins /bin/bashcat /var/jenkins_home/secrets/initialAdminPassword
转载地址:http://lsztz.baihongyu.com/