docker入门

1. docker安装

#docker的安装
sudo apt-get install docker.io

#取消普通用户sudo的方法
#1. 创建docker组:
sudo groupadd docker
#2. 将当前用户加入docker组:
sudo gpasswd -a ${USER} docker
#3. 重启服务:
sudo service docker restart
#4. 刷新docker成员:
newgrp - docker

2. 镜像

查找并下载镜像

#查找镜像
docker search centos
docker search mysql
#下载镜像(lastest 为镜像的版本,不指定默认为latest)
docker pull mysql:latest
docker pull centos:latest 

镜像的操作

1 # 列出下载的镜像
2 docker image ls
3 # 删除镜像
4 docker image rm name/id

3. 容器

创建容器

# 在指定的文件夹下创建容器
cd ~/workplace/mysql
docker run -p 3306:3306 --name yu-mysql -v $PWD/conf:/etc/mysql/conf.d -v $PWD/logs:/logs -v $PWD/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.6

# 命令说明:
-p 3306:3306:将容器的 3306 端口映射到主机的 3306 端口。
-name yu-mysql:为容器创建一个名字
-v -v $PWD/conf:/etc/mysql/conf.d:将主机当前目录下的 conf/my.cnf 挂载到容器的 /etc/mysql/my.cnf。
-v $PWD/logs:/logs:将主机当前目录下的 logs 目录挂载到容器的 /logs。
-v $PWD/data:/var/lib/mysql :将主机当前目录下的data目录挂载到容器的 /var/lib/mysql 。

-e MYSQL_ROOT_PASSWORD=123456:初始化 root 用户的密码。

启动停止,删除容器

# 启动容器
docker start name/id
# 停止容器
docker stop name/id
# 删除容器
docker rm name/id

查看容器运行情况

#查看运行的容器
docker ps
# 查看所有容器
docker ps -a

查看创建的容器的信息

# 查看容器的信息
docker inspect name/id

向容器内部发送指令

# 进入容器内部
docker exec -it yu-mysql bash
# 或者(我的不好使)
docker attach yu-mysql

# 在容器内创建一个文件
docker exec -it yu-mysql touch 123.txt

4. 其他操作

容器和容器外拷贝文件

# 把容器中的文件拷贝到容器外
docker cp  yu-mysql:/123.txt   ~/workplace

# 把容器外的文件拷贝到容器内
docker cp  ~/workplace/456.txt  yu-mysql:/

修改后的容器发布为镜像

# 将修改后的容器发布为镜像, `-a`表示作者, `-m`表示对本次修改的说明
docker commit -a "shuai_long" -m "add 123.txt" yu-mysql mysql:0.1

# 基于新建的镜像创建容器
docker run --name yu-mysql:01 mysql:0.1

 私有仓库

下载仓库注册服务器的镜像,并创建出容器

# 下载私有仓库注册服务器的镜像
docker pull registry:latest

# 创建一个注册服务器容器
sudo docker run -d -p 5000:5000 --name server-registry -v /tmp/registry:/tmp/registry registry:latest

#参数说明
 -d容器在后端运行
 -p 5000:5000在容器的5000端口运行并映射到外部系统的5000端口,
 --name server-registry容器命名为server-registry,
 -v /tmp/registry /tmp/registry  把宿主机的目录/tmp/registry挂载到容器目录/tmp/registry

本地镜像添加标签,并将其归入本地仓库

# 为本地镜像增加标签
docker tag mysql:0.1 localhost:5000/mysql:0.1

#将被标记的本地镜像, push到仓库
docker push localhost:5000/mysql:0.1

测试仓库的可用性

#在虚拟机内网,开启另一台虚拟机, 该虚拟机尝试从Ubuntu获取刚刚创建的镜像mysql:0.1
ifconfig | grep inet

# 获取到IP地址后
sudo docker pull 192.168.214.156:5000/mysql:0.1
原文地址:https://www.cnblogs.com/shuai-long/p/9564970.html