docker ce
- 安装
官方教程文档
sudo apt-get remove docker docker-engine docker.io
sudo apt-get update
sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo apt-key fingerprint 0EBFCD88
sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
sudo apt-get update
sudo apt-get install docker-ce
基本操作
下载镜像
sudo docker pull ubuntu:16.04
创建容器
sudo docker run -t -i ubuntu /bin/bash sudo docker create -it ubuntu:latest
进入容器
#确保容器开启 docker start id sudo docker exec -ti id env LANG=C.UTF-8 /bin/bash
查看容器
sudo docker ps -a
容器的导入和导出
sudo docker export id >python_server.tar cat python_server.tar | sudo docker import - python_server
镜像的保存和加载
docker save -o mysql.tar mysql:latest docker load < mysql.tar
删除容器
sudo docker rm id
删除镜像
sudo docker rmi name_image
挂载 A:B
- 相当于在宿主机上面,有一个A目录指向C空间,同时将容器里的B目录指向C空间
- 访问
- 宿主机访问容器:端口号
- 容器之间的访问:名称
- python 日志
- logging 模块
- mysql实例
- 参考博客
- 待解决的问题:
- mysql导入sql文件与docker-compose里面的数据日志目录挂载冲突,因为容器不能访问宿主机。
docker-compose
- 安装
pip install docker-compose
- 基本操作
docker-compose up #开启
docker-compose down #关闭
docker-compose up -d #后台开启
docker-compose up --no-recreate#启动任何停止的容器
version: '3'
services:
python:
image: python_server
command: python /home/mysql/mysql_server.py
ports:
- "8080:8080"
volumes:
- ./config/python/:/home/mysql/
- ./www/data:/data/
links:
- mysql:mysql
depends_on:
- mysql
mysql:
image: mysql3
environment:
- MYSQL_ROOT_PASSWORD=root
- LANG=C.UTF-8
# volumes:
# - ./dbdata2:/var/lib/mysql
ports:
- "3306:3306"
nginx:
image: nginx:latest
links:
- python
depends_on:
- python
ports:
- "80:80"
volumes:
- ./www/:/var/www/
- ./config/nginx:/etc/nginx/conf.d/
参考
- 《docker 技术入门与实践》
- 感谢南神的大力讲解